Таблица с операциями:
ID | ID_CUSTOMER | AMOUNT_TRANSFER | ID_ACCOUNT_SENDER | ID_ACCOUNT_RECEIVER|
Я должен найти ID_CUSTOMER
с нулевым и максимальным остатком на счетах.
Баланс - это общая разница всех переведенных AMOUNT_TRANSFER
по счетам.
Я пытался найти все суммы перевода по клиенту, но не знаю, как найти разницу:
SELECT
ACCOUNT.ID, SUM(O.AMOUNT_TRANSFER),
C2.SECOND_NAME AS Фамилия, C2.FIRST_NAME
FROM
ACCOUNT
JOIN
CUSTOMER C2 on ACCOUNT.ID_CUSTOMER = C2.ID
JOIN
OPERATION O on ACCOUNT.ID = O.ID_ACCOUNT_RECEIVER
GROUP BY
ACCOUNT.ID, C2.SECOND_NAME, C2.FIRST_NAME
Пример данных:
ID ID_CUSTOMER AMOUNT_TRANSFER ID_ACCOUNT_SENDER ID_ACCOUNT_RECEIVER
1 1 5000 1 2
2 2 3000 1 2
3 1 2000 1 2
4 3 2000 2 3
5 3 1000 3 2
, затем дляНапример,
ID_ACCOUNT == 2 have 5000 + 3000 + 2000 + 1000 are received and 2000 are sended , total balance is 11000 - 2000 = 9000,
далее Мне нужен баланс всех счетов (по счетам). Далее я смогу рассчитать баланс по клиентам (только JOIN и SUM) и счету с 0 и макс. (по тому же подходу)