我有一张表,列有日期和那一天的收入记录,可追溯到12年前。我想对这些数据做的是创建一个新的表与日期和前7天的收入数字。如有任何指导,将不胜感激。下面是一个例子,说明我的源表和我的结果应该是什么样子.
来源表..。
DATE | Revenue
12/31/2013 | 200
12/30/2013 | 300
12/29/2013 | 400
12/28/2013 | 100
12/27/2013 | 200
12/26/2013 | 150
12/25/2013 | 350
12/24/2013 | 450
12/23/2013 | 200
12/22/2013 | 300
12/21/2013 | 100
12/20/2013 | 300结果桌子..。
DATE | 7Dayrev
12/31/2013 | 1700
12/30/2013 | 1950
12/29/2013 | 1850
12/28/2013 | 1750
12/27/2013 | 1750
12/26/2013 | 1850
ETC......发布于 2014-06-11 15:21:13
您可以通过关联子查询来完成这一任务:
;WITH cte AS (SELECT *,ROW_NUMBER() OVER(ORDER BY [DATE] DESC) RN
FROM Table1)
SELECT a.[DATE], a.Revenue, (SELECT SUM(b.Revenue)
FROM cte b
WHERE b.RN BETWEEN a.RN-6 AND a.RN) as Rev_7Day
FROM cte a
ORDER BY a.RN DESC 演示:SQL Fiddle
https://stackoverflow.com/questions/24166465
复制相似问题