使用SQL计算货币金额
我想数一数用户ID 1在他们的帐户上有多少钱。我没有一个列的金额,因为我想保持简单的复式簿记 因此,我想根据PostgreSQL数据库中SQL操作的事务来计算它。我的桌子看起来像这样:使用SQL计算货币金额,sql,postgresql,Sql,Postgresql,我想数一数用户ID 1在他们的帐户上有多少钱。我没有一个列的金额,因为我想保持简单的复式簿记 因此,我想根据PostgreSQL数据库中SQL操作的事务来计算它。我的桌子看起来像这样: id sender_id recipient_id amount_money --- ----------- ---------------------- ----------------- 1 1 2
id sender_id recipient_id amount_money
--- ----------- ---------------------- -----------------
1 1 2 60.00
2 1 2 15.00
3 2 1 35.00
如果用户是发件人,则应减去金额。
否则,如果用户是收件人,则应添加金额
因此,根据可用的表,用户id 1应为:-40.00,用户id 2应为:40.00
如何在PostgreSQL上做到这一点,在参数中只提供用户的id号?我不能很好地用SQL编程,以至于我自己也能处理它
顺便说一句,使用SQL可以这样做吗?我的应用程序后端是用NodeJS编写的。我做了一个小分析,认为我的省钱方式是不错的,但我只是一个有一年经验的程序员。条件聚合:
select sum(case when recipient_id = 2 then 1 else -1 end * amount_money) total
from tablename
where 2 in (sender_id, recipient_id)
请参阅。结果:
| total |
| ----- |
| 40.00 |