select a.djbm,sum(a.je1),sum(b.je2)
from a join b 
on a.djbm=b.djbm
group by a.djbm

解决方案 »

  1.   

    这样好像不行吧,只按a.djbm分组了,我还的要按b.djbm分组啊
      

  2.   

    select djbm,sum(和) 汇总 from 
    (select djbm,sum(je1) 和 from a group by djbm
    union all
    select djbm,sum(je2) 和 from b group by djbm) tem group by djbm
      

  3.   

    to pengdali(大力):
    谢谢您的回复是这样吗:
    select * from (select djbm,sum(a.je1) as je1 from a group by djbm union select djbm,sum(b.je2) as je2 from b group by djbm)) tem where tem.je1>tem.je2
      

  4.   

    是不是得在哪加上:where a.djbm=b.djbm???
      

  5.   

    我有两个表a
    -------------------------------------------------
    djbm       je1
    01         10
    02         5
    03         2
    01         20
    02         10
    ________________________________________________
    b
    ------------------------------------------------
    djbm      je2
    01         10
    02         20
    01         10
    02         20
    我想得到的表c
    -------------------------------------------------
    djbm       je1       je2
    01         30         20
    02         15         40
    03          2         0我最终要得到的表 条件是:je1>je2
    d
    --------------------------------------------------
    djbm      je1        je2
    01        30          20
    03        2           0--------------------------------------------------
    谢谢
      

  6.   

    SELECT AA.BM,SUM(ISNULL(AA.S,0)) AS S1,SUM(ISNULL(BB.S,0)) AS S2 FROM (
    SELECT A.DJBM AS BM,SUM(JE1) AS S FROM A GROUP BY A.DJBM
    ) AS AA FULL JOIN (
    SELECT B.DJBM AS BM,SUM(JE2) AS S FROM B GROUP BY B.DJBM ) AS BB
    ON AA.BM=BB.BM
    GROUP BY AA.BM
    HAVING SUM(ISNULL(AA.S,0))>SUM(ISNULL(BB.S,0))
      

  7.   

    SELECT AA.BM,SUM(ISNULL(AA.S,0)) AS S1,SUM(ISNULL(BB.S,0)) AS S2 FROM (
    SELECT A.DJBM AS BM,SUM(JE1) AS S FROM A GROUP BY A.DJBM
    ) AS AA FULL JOIN (
    SELECT B.DJBM AS BM,SUM(JE2) AS S FROM B GROUP BY B.DJBM ) AS BB
    ON AA.BM=BB.BM
    GROUP BY AA.BM
    HAVING SUM(ISNULL(AA.S,0))>SUM(ISNULL(BB.S,0))
      

  8.   

    select a.djbm,a.je1,b.je2 from a join b on a.djbm=b.djbm where a.je1>b.je2
      

  9.   

    哦!忘了group byselect a.djbm,a.je1,b.je2 from 
    (select djbm,sum(je1) je1 from a group by djbm) join 
    (select djbm,sum(je2) je2 from b group by djbm)
     on a.djbm=b.djbm where a.je1>b.je2
      

  10.   

    最后更正:哈哈哈哈。。
    select a.djbm,a.je1,b.je2 from 
    (select djbm,sum(je1) je1 from a group by djbm) a join 
    (select djbm,sum(je2) je2 from b group by djbm) b
     on a.djbm=b.djbm where a.je1>b.je2或:
    select djbm,sum(je1) je1,sum(je2) je2 from
    (select djbm,je1,0 je2 from (select djbm,sum(je1) je1 from a group by djbm) a 
    union all
    select djbm,0 je1,je2 from (select djbm,sum(je2) je2 from b group by djbm) b) tem group by djbm