A表:
code   num
A         10
A         40
B          20B表:
code   num
A         5
A         10现在希望输出一个如下的结果:
code   num  fnum
A          50      35
B           20      0请教大神,这个怎么搞?

解决方案 »

  1.   

    select a.code,sum(a.num)-coalesce(sum(b.num),0) from a
    left join b on a.code=b.code
    group by a.code
      

  2.   

    如何将两次命令的结果合成一个结果呢,两个命令的结果列是一致的,但因为一个求的是a.code=b.code,一个求的是a.code<>b.code
      

  3.   

    如何将两次命令的结果合成一个结果呢,两个命令的结果列是一致的,但因为一个求的是a.code=b.code,一个求的是a.code<>b.code命令如下:
    1.获得列数据code,inum,onum,fnum,receivalbe,tprice
    SELECT 
        tabIn.code, tabIn.inum, tabOu.onum, (tabIn.inum-tabOu.onum) AS fnum, tabOuR.rtprice AS receivable, tabOu.tprice
    FROM
        
        (SELECT code, SUM(inum) AS inum FROM fqin GROUP BY code) AS tabIn ,
        
        (SELECT code, SUM(onum) AS onum, SUM(tprice) AS tprice FROM fqou GROUP BY code) AS tabOu,
        
        
    (SELECT code, SUM(onum * uprice) AS rtprice FROM fqou GROUP BY code) AS tabOuRWHERE     tabIn.code = tabOu.code AND tabOuR.code = tabIn.code
    2.获得列数据code,inum,onum,fnum,receivalbe,tprice
    SELECT tabIn.code, tabIn.inum, (0) AS onum, (0) AS fnum, (0) AS receivable, (0) AS tprice
    FROM(
    SELECT code, SUM(inum) AS inum
    FROM fqin
    GROUP BY code) 
    AS tabIn ,(
    SELECT code, SUM(onum) AS onum
    FROM fqou
    GROUP BY code) 
    AS tabOuWHERE tabIn.code <> tabOu.code