【发布时间】:2014-07-13 11:40:41
【问题描述】:
我有以下查询,显示特定日期范围内的每周总计:
declare @from_date datetime
declare @to_date datetime
SET @from_date = '2014-03-30';
SET @to_date = '2014-08-10';
SELECT DATEDIFF(week, 0, IDOC.Import_Date) Week,
DATEADD(week, DATEDIFF(week, 0, IDOC.Import_Date), 0) 'From Date',
DATEADD(week, DATEDIFF(week, 0, IDOC.Import_Date), 0) + 6 'End Date',
COUNT(IDOC.IDOC_ID) 'Total'
FROM IDOC
INNER JOIN dbo.File_Type FI
on IDOC.File_Type_ID = FI.File_Type_ID
INNER JOIN IDOC_Team_Assignment ITA
ON IDOC.IDOC_ID=ITA.IDOC_ID
Where IDOC.Import_Date BETWEEN @from_date AND @to_date
GROUP BY DATEDIFF(week, 0, IDOC.Import_Date)
ORDER BY DATEDIFF(week, 0, IDOC.Import_Date)
输出:
Week | From Date | End Date | Total
--------------------------------------------------
5965 2014-04-28 2014-05-04 1
5967 2014-05-12 2014-05-18 1
5968 2014-05-19 2014-05-25 2
我想添加累计总计(运行总计)这是我想要完成的任务:
Week | From Date | End Date | Total | Cummulative
-------------------------------------------------------------
5965 2014-04-28 2014-05-04 1 1
5967 2014-05-12 2014-05-18 1 2
5968 2014-05-19 2014-05-25 2 4
【问题讨论】:
-
stackoverflow.com/questions/860966/… 你想要一个累计,而不是累计。该链接向您展示了如何执行此操作;
-
使用 SQL Server 2008 似乎不太直接,可能没有临时表?
标签: sql-server-2008 tsql aggregation