将两条select语句结合在一起
问题描述:
我正在努力计算出我们为入会费收取了多少。将两条select语句结合在一起
我有两个单独的查询都返回值,但我需要他们作为一个而不是两个单独的查询。
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY2
答
我需要为了得到语句一起使用UNION。然后用下面的代码获得一个数字。
SELECT SUM(X.TOTAL1) from
(
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY
UNION
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY2
) X;
+0
小心使用'UNION'和'UNION ALL';如果这两个数字恰好相等,您将得到错误的答案,因为'UNION'删除重复项。 – mathguy
答
select sum(entry) as grand_total
from (select entry from money
union all
select entry from money2
);
问题的关键是,你应该使用UNION ALL
;每个表有多少列是无关的,因为你不需要UNION ALL
这两个表(每个表中的所有列);您只需要UNION ALL
第一张表中的ENTRY
列和第二张表中的ENTRY
列。
你有没有尝试过工会? – Fabien
我放弃了它,但我相信所有列的值必须相同。我在另一个列中有更多列。但我不怀疑希瑟我做了这个联合加入正确。 – thewaleed100
您确实需要相同数量的列(每个列对具有相同的数据类型),但通过在列中包含较少列的select中包含虚拟列,可以很容易地解决这个问题。 (eg:select'',from dual; 0) –