问题描述
- 两个表中数据分类汇总合并的问题
- 我有两个表,表中各有一个类型字段,名称字段,数值字段,例 如下:
表1:
类型 名称 数值
文具 铅笔 2
耗材 纸 10
表2
类型 名称 数值
文具 铅笔 1
耗材 纸 1
表1存的是采购计划数据,表2存的是采购数据
我现在需要将两表的各自分类数据汇总后进行输出类型 名称 采购计划数 采购数
文具 铅笔 2 1
耗材 纸 10 1现在的写法怎么写数据都出现了交叉,请大神讲讲!
select 该 怎么写?
解决方案
select 类型名称sum(采购计划数) as 采购计划数sum(采购数) as 采购数 from(select 类型名称数值 as 采购计划数0 as 采购数 from 表1unionselect 类型名称0 as 采购计划数数值 as 采购数 from 表2) a
解决方案二:
两个数据库表中合并数据
解决方案三:
select 表1.* 表2.数值 from 表1 表2 where 表1.类型=表2.类型 and 表1.名称=表2.名称
这个表设计有问题
表2应该这样
表2的id,表1的主键id,采购数
表1
id,类型 名称 数值
select 表1.* 表2.数值 from 表1 LEFT JOIN 表2 on 表1.id=表2.表1的主键id
解决方案四:
select 表1.类型表1.名称表1.数值 as 采购计划数表2.数值 as 采购数 from表1 表2 where 表1.类型=表2.类型 and 表1.名称=表2.名称
解决方案五:
select 类型名称sum(采购计划数) as 采购计划数sum(采购数) as 采购数 from
(
select 类型名称数值 as 采购计划数0 as 采购数 from 表1
union
select 类型名称0 as 采购计划数数值 as 采购数 from 表2
) a
时间: 2024-07-28 17:34:40