Суммарный текущий итог в sql

#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)