У меня есть две таблицы
Таблица счетов (счет)
id name
1 Account 1
2 Account 2
3 Account 3
4 Account 2
Таблица транзакций (транзакция)
id account_id type amount datetime
1 1 credit 500 2020-04-01 06:00:00
2 1 credit 300 2020-04-01 06:00:00
3 2 credit 100 2020-04-01 06:00:00
4 2 debit 50 2020-04-01 06:00:00
5 1 debit 600 2020-04-01 06:00:00
6 3 credit 1000 2020-04-01 06:00:00
7 1 credit 100
Моя цель - получить счет id, name, balance
в одном запросе. Баланс будет рассчитан из таблицы транзакций как SUM of Credit Amount - SUM of Debit Amount
для данного счета.
Целевой вывод
id name balance
1 Account 1 300
2 Account 2 50
3 Account 3 1000
4 Account 4 0
Возможный запрос
SELECT id, name, ((SELECT SUM(amount) FROM transaction WHERE type = 'credit' AND account_id = {ACCOUNT_ID} ) - (SELECT SUM(amount) FROM transaction WHERE type = 'debit' AND account_id = {ACCOUNT_ID} )) as balance
Возможно ли сделать это в одном запросе, и если да, то как это сделать.