【发布时间】:2016-11-04 05:52:06
【问题描述】:
试图在最右边的列中获取累积总数,该列将重置为每年 7 月重新开始。纳税年度为 7 月至 6 月。此代码重置日历年。:
Select T.MonthlyTotal
,T.SalesMonth
,T.[Year]
,SUM(T.MonthlyTotal) OVER (ORDER BY T.[Year]) AS CumulativeTotal
From (SELECT
SUM (SubTotal) AS MonthlyTotal
,MONTH(CreateDate) AS SalesMonth
,Year(CreateDate) AS [Year]
FROM OrderFormHeader
Group by Month(CreateDate),Year(CreateDate)) AS T
Order by T.[Year],T.SalesMonth
样本数据:
MonthlyTotal SalesMonth Year CumulativeTotal
34370.56 7 2009 135682.15
61915.29 8 2009 135682.15
15027.21 9 2009 135682.15
9537.80 10 2009 135682.15
6748.38 11 2009 135682.15
8082.91 12 2009 135682.15
9047.77 1 2010 446574.06
11152.21 2 2010 446574.06
11672.16 3 2010 446574.06
13451.61 4 2010 446574.06
10777.37 5 2010 446574.06
20135.99 6 2010 446574.06
55169.70 7 2010 446574.06
93018.89 8 2010 446574.06
50195.15 9 2010 446574.06
11842.17 10 2010 446574.06
【问题讨论】:
-
将 salesmonth 添加到您的 SUM() OVER() 中?
SUM(T.MonthlyTotal) OVER (ORDER BY T.[Year], T.SalesMonth)
标签: sql sql-server sql-server-2012 cumulative-sum