我有两个表,表中各有一个类型字段,名称字段,数值字段,例 如下:
表1:
类型 名称 数值
文具 铅笔 2
耗材 纸 10
表2
类型 名称 数值
文具 铅笔 1
耗材 纸 1
表1存的是采购计划数据,表2存的是采购数据
我现在需要将两表的各自分类数据汇总后进行输出
类型 名称 采购计划数 采购数
文具 铅笔 2 1
耗材 纸 10 1
现在的写法怎么写数据都出现了交叉,请大神讲讲!
select 该 怎么写?
select 类型,名称,sum(采购计划数) as 采购计划数,sum(采购数) as 采购数 from
(
select 类型,名称,数值 as 采购计划数,0 as 采购数 from 表1
union
select 类型,名称,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