表A和表B我想在表A中取出8月分数据和B表中的12月份数据相加,两个表的结构相同要求:1.如果两个表中都有数据则相加
2.如果两个表中有一个未取到数据,则另一个表加0
3.要求依程序代码的方式写出,例:select * from a where 不要设变量。急,谢谢

解决方案 »

  1.   

    select nvl(a.c1,0) +nvl(b.c1,0) from a,bq where ...
      

  2.   

    select nvl(a.c1,0) +nvl(b.c1,0) from a,bq where ...
      

  3.   

    内连接不行,要使用full outer join
      

  4.   

    做一个类似的例子,供参考
    select * from a;
       ID N
    ----- -
        1 A
        2 B
        3 CSELECT * FROM b;
      ID N
    ---- -
       2 E
       3 F
       4 Gselect nvl(a.id,b.id) id,a.name||b.name name
    from a full outer join b
    on(a.id=b.id)
    order by id  ID NA
    ---- --
       1 A
       2 BE
       3 CF
       4 G
      

  5.   

    已运行的SQL:SELECT P.主键, SUM(要相加的列) FROM
              ((SELECT * FROM A WHERE month = 8)
                 UNION ALL
               (SELECT * FROM B WHERE month = 12)
              ) P
    GROUP BY P.主键