合并两个不同数量的表

时间:2014-01-05 13:17:49

标签: sql merge sql-server-2012

我有两个表(表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

2 个答案:

答案 0 :(得分: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 :(得分: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;