我有两张桌子
表A:
ID|Name |TotalAmount
1234|Test1|120.00
1235|Test2|1456.68
表B:
ID|Name |LineAmount
1234|Test1A|80.00
1234|Test1B|40.00
1235|Test2A|1000.08
1235|Test2B|0.60
1235|Test2C|56.00
1235|Test2D|400.00
我想计算具有相同ID的表B 行的总和,并将
我想要的是什么:
我不知道的是,如果总和金额等于总金额,我该如何比较。如果是这种情况,则不会做额外的事情。
答案 0 :(得分:0)
我不确定“比较”是什么意思。以下产生了差异:
select coalesce(a.id, b.id) as id, a.TotalAmount, bsum.TotalLineAmount,
(a.TotalAmount - bsum.TotalLineAmount) as difference
from TableA a full outer join
(select b.id, sum(LineAmount) as TotalLineAmount
from TableB b
group by b.id
) bsum
on a.id = bsum.id;
如果某些ID在一个表中但不在另一个表中,则使用full outer join
。