С помощью следующей таблицы MySQL, содержащей «действия» по дебету или кредиту со связанными суммами и валютой, как можно выбрать все CLIENT_IDs
с ненулевым "balance"
каждого currency
? Я пытался, но что-то не работает правильно.
CLIENT_ID ACTION_TYPE ACTION_AMOUNT Currency
1 debit 1000 USD
1 credit 100 USD
1 credit 500 DR
2 debit 1000 EURO
2 credit 1200 DR
3 debit 1000 EURO
3 credit 1000 USD
4 debit 1000 USD
Мой запрос MySQL, который не работает:
SELECT client_id,
SUM(if(action_type='credit',action_amount,0)) as credit,
SUM(if(action_type='debit',action_amount,0 )) as debit,
SUM(if(currency='USD' ,action_type='credit'- action_type='debit' )) as USD_balance,
SUM(if(currency='EURO',action_type='credit'- action_type='debit' )) as EURO_balance,
SUM(if(currency='DR' ,action_type='credit'- action_type='debit' )) as DR_balance
FROM my_table
GROUP BY client_id,currency
Результат, который я ожидаю, выглядит примерно так:
CLIENT_ID USD_Balance EURO_Balance DR_Balance
1 -900 0 500
2 0 -1000 1200
3 1000 -1000 0
4 -1000 0 0
Понятия не имею, что еще попробовать. Любая помощь будет великолепна.