总计 运行 sql
Sum running total in sql
我正在尝试将 运行 总计列插入 SQL 服务器 table 作为存储过程的一部分。我需要这个用于财务数据库,所以我正在处理账户和部门。例如,假设我有这个数据集:
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)
但它不会返回并获取前几个月...
有什么想法吗?谢谢!
你很接近。你需要一个 order by
:
Sum(Value) over (partition by Account, Dept order by Date)
我正在尝试将 运行 总计列插入 SQL 服务器 table 作为存储过程的一部分。我需要这个用于财务数据库,所以我正在处理账户和部门。例如,假设我有这个数据集:
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)
但它不会返回并获取前几个月...
有什么想法吗?谢谢!
你很接近。你需要一个 order by
:
Sum(Value) over (partition by Account, Dept order by Date)