使用SQL Server窗口函数按财务年度获取运行总计

时间:2016-12-05 15:15:22

标签: sql-server running-total windowing fiscal

我正在使用SQL Server 2014.我有一个 Claims 表,其中包含我系统中每月索赔的总数:

+-----------+-------------+------------+
| Claim_ID  | Claim_Date  | Nett_Total |
+-----------+-------------+------------+
| 1         | 31 Jan 2012 |  321454.67 |
| 2         | 29 Feb 2012 |  523542.34 |
| 3         | 31 Mar 2012 |   35344.33 |
| 4         | 30 Apr 2012 |  142355.63 |
| etc.      | etc.        | etc.       |
+-----------+-------------+------------+

对于我正在撰写的报告,我需要能够产生累计运行总额,在每个会计年度开始时重置为零(在我的国家,这是从下一年的3月1日到2月28/29) 。

报告看起来与表格类似,有一个额外的运行总栏目,如:

+-----------+-------------+------------+---------------+
| Claim_ID  | Claim_Date  | Nett_Total | Running Total |
+-----------+-------------+------------+---------------+
| 1         | 31 Jan 2012 |  321454.67 |     321454.67 |
| 2         | 29 Feb 2012 |  523542.34 |     844997.01 |
| 3         | 31 Mar 2012 |   35344.33 |      35344.33 | (restart at 0
| 4         | 30 Apr 2012 |  142355.63 |     177699.96 |  for new yr) 
| etc.      | etc.        | etc.       |               |
+-----------+-------------+------------+---------------+

我知道窗口函数非常强大,我过去以初步的方式使用它们来获取总和和平均值,同时避免需要对结果集行进行分组。我有一种直觉,我需要使用前面的'用于获取每一行所属的当前会计年度的运行总计的关键字,但我不太清楚如何将财政年度表达为在前一个会议期间使用的概念。条款(或者如果确实可以以这种方式使用日期范围)。

"短语"的任何帮助"前面"的会计年度这个条款对我很有帮助。

0 个答案:

没有答案