答案 0 :(得分:1)
使用UNION ALL
和group by
select person, sum(b)
from
(
select sender person, -amount b from transfer
union all
select recipient person, amount b from transfer
) t
group by person
因此,如果该人分别是发送者和接收者,则每笔交易都被视为余额的减少和增加。
答案 1 :(得分:0)
您可以尝试以下操作:
select sender,(select sum(amount)
from table1 b
where b.recipient=a.sender)-sum(amount)
from table1 a
group by sender
对于每个发件人,您得到的是他作为发件人得到的金额的总和减去作为收款人得到的金额的总和。
编辑 有人告诉我,求和是取反的,他是对的,所以我改变了操作数的顺序。