#sql-server #tsql #cumulative-sum
#sql-сервер #tsql #кумулятивная сумма
Вопрос:
Я пытаюсь вставить столбец running total в таблицу SQL Server как часть хранимой процедуры. Мне это нужно для финансовой базы данных, поэтому я имею дело с учетными записями и отделами. Например, допустим, у меня есть этот набор данных:
Account | Dept | Date | Value | Running_Total
-------- -------- ------------ ---------- --------------
5000 | 40 | 2018-02-01 | 10 | 15
5000 | 40 | 2018-01-01 | 5 | 5
4000 | 40 | 2018-02-01 | 10 | 30
5000 | 30 | 2018-02-01 | 15 | 15
4000 | 40 | 2017-12-01 | 20 | 20
Столбец Running_Total предоставляет историческую сумму дат, меньшую или равную значению даты в каждой строке. Однако для этого учетная запись и подразделение должны совпадать.
Я смог приблизиться, используя
SUM(Value) OVER (PARTITION BY Account, Dept, Date)
но он не возвращается и не получает предыдущие месяцы…
Есть идеи? Спасибо!
Ответ №1:
Вы близки. Вам нужно order by
:
Sum(Value) over (partition by Account, Dept order by Date)