sql запрос на вывод изменения остатка на балансе
Подскажите как составить запрос, чтобы получить результат на основе таблицы tran. Сам запрос должен выводить как менялся остаток на балансе при совершении транзакций.
результат:
таблица tran:
Ответы (1 шт):
Автор решения: Andrew Nikolaev
→ Ссылка
Платформа и версия СУБД не указана, поэтому предлагаю решение на MS SQL Server:
CREATE TABLE #tran ([TRANSACTION_ID] INT, [CHANGE] VARCHAR(255), [DATE] DATETIME, TOTAL MONEY )
INSERT #tran ([TRANSACTION_ID], [CHANGE], [DATE], [TOTAL])
VALUES
(9101, 'bank', '01.02.2020', 126),
(9002, 'bank', '01.02.2020', 122),
(9903, 'bank', '02.02.2020', 244),
(9804, 'mail', '02.02.2020', -153),
(9705, 'bank', '02.02.2020', 32),
(9606, 'mail', '03.02.2020', -57),
(9507, 'transact', '03.02.2020', 98),
(9408, 'pay', '03.02.2020', -135),
(9309, 'bank', '03.02.2020', 146),
(9210, 'bank', '03.02.2020', 212),
(9111, 'mail', '04.02.2020', -88),
(9012, 'pay', '05.02.2020', -67)
SELECT
*,
BALANCE = (SELECT SUM(t2.TOTAL) FROM #tran t2 WHERE t2.TRANSACTION_ID <= t.TRANSACTION_ID)
FROM #tran t
ORDER BY t.TRANSACTION_ID
DROP TABLE #tran
Как то так.

