Я пытаюсь вернуть список учетных записей со своими балансами, результатами и доходами
Account Transaction
------- -----------
AccountID TransactionID
BankName AccountID
Locale Amount
Status
Вот что я сейчас имею. Может кто-нибудь объяснить, где я ошибаюсь?
select
a.ACCOUNT_ID,
a.BANK_NAME,
a.LOCALE,
a.STATUS,
sum(t1.AMOUNT) as BALANCE,
sum(t2.AMOUNT) as OUTCOME,
sum(t3.AMOUNT) as INCOME
from ACCOUNT a
left join TRANSACTION t1 on t1.ACCOUNT_ID = a.ACCOUNT_ID
left join TRANSACTION t2 on t2.ACCOUNT_ID = a.ACCOUNT_ID and t2.AMOUNT < 0
left join TRANSACTION t3 on t3.ACCOUNT_ID = a.ACCOUNT_ID and t3.AMOUNT > 0
group by a.ACCOUNT_ID, a.BANK_NAME, a.LOCALE, a.[STATUS]
UPDATE
Исправили синтаксис левого соединения t2 в соответствии с комментарием ниже.
Результат, который я ожидаю, надеюсь, очевидно из вопроса. Для 6 учетных записей SQL должен вернуть 6 учетных записей с их балансом, доходами и результатами этой учетной записи.
Проблема с предоставленным мной SQL заключалась в том, что цифры неверны! Согласно комментариям, я думаю, что проблема связана с объединением нескольких раз, что суммирует суммы неправильно.