如何添加'两个表的总和?'的总和?

时间:2017-11-21 17:00:43

标签: sql oracle select oracle11g sum

我创建了表T1和T2。我设法添加它们的总和,但我似乎无法通过在代码的开头添加sum()来将T1和T2的总和加在一起(10 + 12 = 22 )。

    CREATE TABLE T1(kW int)
    CREATE TABLE T2(kW int) 

    SELECT T1C1, T2C1
    FROM
     ( select SUM(Kw) T1C1 FROM  T1 ) A
    CROSS JOIN 
     ( select SUM(Kw) T2C1 FROM  T2 ) B

    BEGIN
    INSERT INTO T1 VALUES ('4');
    INSERT INTO T1 VALUES ('1');
    INSERT INTO T1 VALUES ('5');
    INSERT INTO T2 VALUES ('7');
    INSERT INTO T2 VALUES ('2');
    INSERT INTO T2 VALUES ('3');
    END

3 个答案:

答案 0 :(得分:1)

您应该使用union all来创建"虚拟"两个表中列的列:

SELECT SUM(kw)
FROM   (SELECT kw FROM t1
        UNION ALL
        SELECT kw FROM t2) t

答案 1 :(得分:0)

尝试使用存储过程。这样做,您将能够将每个表的总和存储在一个单独的变量上,然后返回这两个变量的SUM。

您还可以创建所需的UNION ALLSUM列。请注意,您应该UNION ALL以避免消除重复的值。

答案 2 :(得分:0)

另一种方法是直接添加两个子查询的结果,使用内置的虚拟表dual作为主要驱动表:

select ( select SUM(Kw) FROM T1 )
     + ( select SUM(Kw) FROM T2 ) as total
from dual;

     TOTAL
----------
        22