我试图在 SQL Server 中聚合 2013 财年(从 2012 年 10 月 1 日开始,到 2013 年 9 月 30 日结束)的 7 天数据,但到目前为止还没有成功。有人可以看一下吗?下面是我的示例数据。
DATE BREAD MILK
10/1/12 1 3
10/2/12 2 4
10/3/12 2 3
10/4/12 0 4
10/5/12 4 0
10/6/12 2 1
10/7/12 1 3
10/8/12 2 4
10/9/12 2 3
10/10/12 0 4
10/11/12 4 0
10/12/12 2 1
10/13/12 2 1
所以,我想要的输出是这样的:
DATE BREAD MILK
10/1/12 1 3
10/2/12 2 4
10/3/12 2 3
10/4/12 0 4
10/5/12 4 0
10/6/12 2 1
Total 11 15
10/7/12 1 3
10/8/12 2 4
10/9/12 2 3
10/10/12 0 4
10/11/12 4 0
10/12/12 2 1
10/13/12 2 1
Total 13 16
--------through 9/30/2013
请注意,由于 FY13 于 10/1/2012 开始并于 9/30/2012 结束,FY13 第一周为 6 天,而不是 7 天。
我使用的是 SQL Server 2008。
最佳答案
您可以为日期值添加一个新的计算列,以按周对它们进行分组并对其他列求和,如下所示:
SELECT DATEPART(ww, DATEADD(d,-2,[DATE])) AS WEEK_NO,
SUM(Bread) AS Bread_Total, SUM(Milk) as Milk_Total
FROM YOUR_TABLE
GROUP BY DATEPART(ww, DATEADD(d,-2,[DATE]))
注意:我使用 DATEADD
并根据您的日期减去 2 天,将一周的第一天设置为星期一。如果需要,您可以修改它。
关于sql - 如何在 SQL 中聚合 7 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619507/