我创建了表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
答案 0 :(得分:1)
您应该使用union all
来创建"虚拟"两个表中列的列:
SELECT SUM(kw)
FROM (SELECT kw FROM t1
UNION ALL
SELECT kw FROM t2) t
答案 1 :(得分:0)
尝试使用存储过程。这样做,您将能够将每个表的总和存储在一个单独的变量上,然后返回这两个变量的SUM。
您还可以创建所需的UNION ALL
和SUM
列。请注意,您应该UNION ALL
以避免消除重复的值。
答案 2 :(得分:0)
另一种方法是直接添加两个子查询的结果,使用内置的虚拟表dual
作为主要驱动表:
select ( select SUM(Kw) FROM T1 )
+ ( select SUM(Kw) FROM T2 ) as total
from dual;
TOTAL
----------
22