如何编写此SQL查询以查找每个帐户余额?

时间:2019-07-09 09:46:29

标签: sql database postgresql

我有一个交易表(如图所示)

https://i.ibb.co/7pdYxxm/hhhhhh.jpg

有交易类型(借方/贷方) 我需要一个SQL查询来计算每个帐户的余额(贷项总和-债务总和) 因此,我们按account_id分组...但是如何单独对贷方和借方求和呢?

我在PostgreSQL上!谢谢!

3 个答案:

答案 0 :(得分:0)

尝试一下:

 Select sum(Transaction_Amount), 
       Account_Id, 
       Transaction_Type

    From Table_Name
    Group By
       Account_Id,
       Transaction_Type

答案 1 :(得分:0)

我认为当类型='C'时,必须减去金额。

    select account_id, sum((case when transaction_type = 'C' then -1 else 1 end) * transaction_amount)
    from trans
    group by account_id

根据交易类型,金额乘以1或-1。

答案 2 :(得分:0)

这是实现此目的的简便方法:

选择account_id, sum((如果transaction_type ='C'然后1,否则0结尾)* transaction_amount)作为sum_of_credit, sum((transaction_type ='D'然后1否则0结束的情况)* transaction_amount)为sum_of_debit 从YourTableNameHere按account_id分组;

Sample Data Sample Output for the query