表master
datet      jddw spr yqr jbr jcdd bz zdfje id
1999-01-13    7 0 7 0 1 1 ¥284.00 13
1999-01-13    8 2 0 0 1 2 ¥228.00 14
1999-01-13    8 8 0 0 1 1 ¥279.00 15
1999-01-13    4 0 6 0 1 1 ¥360.00 16
1999-01-13   8 9 0 0 1 4 ¥255.00 17
1999-02-28   8 1 0 17 5 1           ¥1,303.00 18
1999-01-13   8 0 8 0 1 1 ¥240.00 19
1999-01-13   8 0 9 0 1 5 ¥180.00 20
1999-01-13   8 0 5 0 1 1 ¥229.00 21
1999-01-13  8 0 5 0 1 1 ¥420.00 22
表examine
sprm spr spbg id
王明 1 No 49
地方 2 No 50
计划 3 No 51
呵呵 4 No 52
三分 5 No 53
斯蒂芬 6 No 54
毒素发 7 No 55
斯蒂 8 No 56
其他 0 No 57表treat
yqrrm ypr yqbg id
地方 1 No 49
计划 2 No 50
王明 3 No 51
斯蒂芬 4 No 52
三分 5 No 53
呵呵 6 No 54
毒素发 7 No 55
发给 8 No 56
和文 9 No 57
其他 0 No 58现在想列出所有的sprm和yqrm的zdfje汇总,请问该如何实现呢?我作个每个sprm与yqrm的分别汇总,语句如下:
select examine.sprm,(select sum(master.zdfje) from master where master.spr=examine.spr) from examine
select treat.yqrm,(select sum(master.zdfje) from master where master.yqr=treat.yqr) from treat
现在需要做两个查询结果的汇总,请大家帮帮我,该如何实现呢?

解决方案 »

  1.   

    如果sprm与yqrm名称相同,需要将他们的数据相加!
      

  2.   

    selet b.sprm ,sum(a.zdfje)from master a inner jion examine b
    on a.spr=b.spr where b.spr<>'0' 
      

  3.   

    sorry:
    selet b.sprm ,sum(a.zdfje) from master a inner jion examine b
    on a.spr=b.spr where b.spr<>'0' group by b.spr
      

  4.   

    我的意思是想
    如果sprm与yqrm内容相同时,按照sprm和yqrm两项结果相加。
      

  5.   

    我现在这样做!
    select esprm,sum(mzdfje) from (select examine.sprm as esprm,(select sum(master.zdfje) from master where master.spr=examine.spr) as mzdfje from examine
    union all
    select treat.yqrm,(select sum(master.zdfje) from master where master.yqr=treat.yqr) from treat) group by esprm
    可以实现我要的功能!
    谢谢大家!
    如果大家有什么好的办法,可以告诉我!
    谢谢大家!
      

  6.   

    union all可以啊
    合并嘛
    你用存取过程也行
      

  7.   

    存取过程是怎么回事?
    是不是先把SQL语句存储起来,然后到最后把存储的SQL语句一起执行.