我有2个表,设备表e和零部件表p
字段都如下所示ID 厂家代号(cjdh) 设备/零部件编号(e/p_bianhao) 数量(NUM)还有一个设备基本信息表和零部件基本信息表(其中有对应编号设备的单价信息)
比如现在我要按照厂家代号来统计各个厂家所有设备和零部件的总的钱数,
比如
设备和零部件表中数据分别如下:
设备表:
0 001 e_001 10
1 001 e_002 20
2 002 e_001 15零部件表:
0 002 p_001 3
1 003 p_002 4设备/零部件基本信息如下
设备基本信息e_jb(编号,单价):
e_bianhao e_danjia
e_001 10
e_002 3零部件基本信息p_jb(编号,单价):
p_bianhao p_danjia
p_001 4
p_002 5那么统计的结果应该是:
001 160
002 162
003 20
我的语句如下,可是零部件部分老是不对,好像是设备部分对其老有影响
字段都如下所示ID 厂家代号(cjdh) 设备/零部件编号(e/p_bianhao) 数量(NUM)还有一个设备基本信息表和零部件基本信息表(其中有对应编号设备的单价信息)
比如现在我要按照厂家代号来统计各个厂家所有设备和零部件的总的钱数,
比如
设备和零部件表中数据分别如下:
设备表:
0 001 e_001 10
1 001 e_002 20
2 002 e_001 15零部件表:
0 002 p_001 3
1 003 p_002 4设备/零部件基本信息如下
设备基本信息e_jb(编号,单价):
e_bianhao e_danjia
e_001 10
e_002 3零部件基本信息p_jb(编号,单价):
p_bianhao p_danjia
p_001 4
p_002 5那么统计的结果应该是:
001 160
002 162
003 20
我的语句如下,可是零部件部分老是不对,好像是设备部分对其老有影响
select cjdh,(NUM*e_danjia) as total from 设备表 a,设备基本信息 b where a.e_bianhao = b.e_bianhao
group by cjdhunion allselect cjdh,sum(NUM*p_danjia) as total from 零部件表 a,零部件基本信息 b where a.p_bianhao= b.p_bianhao group by cjdh) a group by cjdh
from (
select a.cjbh,[小计]=a.NUM*b.e_dianjia
from [设备表] a
join [设备基本信息] b on b.e_bianhao=a.e_bianhao
union all
select a.cjbh,a.NUM*b.p_dianjia
from [零部件表] a
join [零部件基本信息] b on b.p_bianhao=p.e_bianhao
) x
group by cjbh
order by cjbh
比如结果如下:
设备表e的结果
厂家代号 经费
001 120
002 200
零部件表p的结果
001 100
002 300
003 150
怎么把这两个表的结果汇总,也就是结果变成
001 220
002 500
003 150
(select 零部件表.cjdh as cjdh,sum(e_danjia*NUM ) as sum
from 设备表 c
join 设备基本信息 d on d.e_bianhao=c.e_bianhao
) b
from a,b
where a.a.cjdh=b.a.cjdh
order by cjbh
这样?
from (select 厂家代号,经费 from a
union all
select 厂家代号,经费 from b)c
group by 厂家代号
--这样连接方式就可以了