Как написать этот SQL-запрос, чтобы найти баланс каждого счета? - PullRequest
0 голосов
/ 09 июля 2019

У меня есть таблица транзакций (показано на рисунке)

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

Есть тип транзакции (дебет / кредит) Мне нужен SQL-запрос, который вычисляет баланс каждого счета (сумма кредитов - сумма долгов) Итак, мы группируем по account_id ... но как мы можем суммировать только кредиты и только дебеты?

Я нахожусь на PostgreSQL! Спасибо!

Ответы [ 3 ]

0 голосов
/ 09 июля 2019

Я предполагаю, что сумма должна быть вычтена, когда type = '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.

0 голосов
/ 10 июля 2019

Это простой способ для вас:

select account_id, sum((case when transaction_type = 'C' then 1 else 0 end)*transaction_amount) as sum_of_credit,sum((case when transaction_type = 'D'then 1 else 0 end) * transaction_amount) as sum_of_debit from YourTableNameHere group by account_id;

Пример данных Пример выходных данных для запроса

0 голосов
/ 09 июля 2019

Попробуйте:

 Select sum(Transaction_Amount), 
       Account_Id, 
       Transaction_Type

    From Table_Name
    Group By
       Account_Id,
       Transaction_Type
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...