2014-01-05 43 views
0

我有兩個具有相同字段名稱的表格(表格1和表格2)。 我想合併兩個表並顯示結果表中兩個表中顯示的總金額。合併兩個不同數量的表格

請看下面的例子。請考慮在表1中有4500條記錄和表2 400. 我試過合併,完全連接螺母無法獲得希望的結果。

Table1 
Account_number Amount 
    aaa   100 
    bbb   50 
    ccc   200 
    ddd   20 

Table2 
Account_number Amount 
    aaa   85 
    bbb   50 
    ccc   10 
    ddd   40 

Result 
Account_number Amount 
    aaa   185 
    bbb   100 
    ccc   210 
    ddd   60 
+0

完全加入應該工作,你可以請張貼代碼? – Jayvee

+0

請把你的代碼.. –

+0

選擇dp.account_number,從表1爲DP全外dp.amount + d.amount作爲總金額 加入表2作爲dp.account_number d = d.account_number 其中dp.account_number不爲空 order by TotalAmount desc – driveg81

回答

1

假設從表2的所有帳戶號碼也有在表1中的條目下面的語句應該工作:

SELECT Table1.Account_number, Table1.Amount + COALESCE(Table2.Amount, 0) 
FROM Table1 
LEFT JOIN Table2 ON Table1.Account_number=Table2.Account_number; 

否則可能UNION用相同的語句中使用轉換表名:

SELECT Table1.Account_number, Table1.Amount + COALESCE(Table2.Amount, 0) 
FROM Table1 
LEFT JOIN Table2 ON Table1.Account_number=Table2.Account_number 
UNION 
SELECT Table2.Account_number, Table2.Amount + COALESCE(Table1.Amount, 0) 
FROM Table2 
LEFT JOIN Table1 ON Table2.Account_number=Table1.Account_number 
+1

如果您想使其更加通用,則可以更改左側的完整連接並使用合併確定account_number和table1 .amount – Jayvee

1
SELECT COALESCE(Table1.Account_number,Table2.Account_number), COALESCE(Table1.Amount, 0) + COALESCE(Table2.Amount, 0) 
FROM Table1 
FULL JOIN Table2 ON Table1.Account_number=Table2.Account_number; 
+0

太棒了,它完美的作品;)你能簡單地解釋一下coalesce功能嗎?謝謝 – driveg81

+0

coalesce將返回列表中第一個表達式的值爲NOT NULL – Jayvee

+0

太棒了!再次感謝 – driveg81

相關問題