我有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
我的语句如下,可是零部件部分老是不对,好像是设备部分对其老有影响

解决方案 »

  1.   

    select cjdh,sum(total) from (
    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
      

  2.   

    select cjbh,[总价]=sum([小计])
    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
      

  3.   

    或者说我能分别求出设备表e和零部件表p中各个厂家的总经费
    比如结果如下:
    设备表e的结果
    厂家代号     经费
    001          120
    002          200
    零部件表p的结果
    001          100
    002          300
    003          150
    怎么把这两个表的结果汇总,也就是结果变成
    001          220
    002          500
    003          150
      

  4.   

    厂家代号作为组group by 厂家代号就行了,其它都是连接问题了
      

  5.   

    select a.cjdh,b.sum from 
    (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
    这样?
      

  6.   

    select 厂家代号,经费=sum(价格) 
    from (select 厂家代号,经费 from a
    union all
    select 厂家代号,经费 from b)c
    group by 厂家代号
    --这样连接方式就可以了