我正在努力計算出我們爲入會費收取了多少。將兩條select語句結合在一起
我有兩個單獨的查詢都返回值,但我需要他們作爲一個而不是兩個單獨的查詢。
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY2
我正在努力計算出我們爲入會費收取了多少。將兩條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;
小心使用'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) –