如何使用一个select查询从transfer表中获取每个参与者的余额?

vwkv1x7d  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(326)

我有一个传送台,看起来像这样:
转移

我想从转帐表中得到每个参与者的余额。
查询的输出应如下所示:
输出

9jyewag0

9jyewag01#

使用 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

因此,如果每个人分别是发送者和接收者,则每个交易都被视为余额的减少和增加。
uqjltbpv

uqjltbpv2#

你可以尝试这样的方法:

select sender,(select sum(amount)
               from table1 b
               where b.recipient=a.sender)-sum(amount)
from table1 a
group by sender

你可以得到每个发送者作为发送者所付出的金额减去他作为接收者所付出的金额的总和。
有人告诉我和是倒数的,他是对的,所以我改变了操作数的顺序

相关问题