如何将以下查询转换为每周总和
How to convert the following query to give sum per week
这是计算每天总时间的长查询的一部分。我想更改它以给我每周的总时间。任何的想法?要检查长查询,请单击 Here
INSERT INTO @test (
activity
,DATE
,TimePerDay
)
SELECT activity
,Cast(starttime AS DATE) AS DATE
,SUM(datediff(second, starttime, endtime)) / 60.0 AS TimePerDay
FROM cte WITH (NOLOCK)
WHERE starttime >= dateadd(week, @LastXWeeks, last_update)
GROUP BY activity
,cast(starttime AS DATE)
例如,您可以这样做:
SELECT activity
,DATEADD(wk, DATEDIFF(wk,0,Cast(starttime AS DATE)), 0) AS Week
,SUM(datediff(second, starttime, endtime)) / 60.0 AS TimePerDay
FROM cte WITH (NOLOCK)
WHERE starttime >= dateadd(week, @LastXWeeks, last_update)
GROUP BY activity
,DATEADD(wk, DATEDIFF(wk,0,Cast(starttime AS DATE)), 0)
您可能需要根据一周的实际开始日期调整代码。这适用于周一至周日。
这是计算每天总时间的长查询的一部分。我想更改它以给我每周的总时间。任何的想法?要检查长查询,请单击 Here
INSERT INTO @test (
activity
,DATE
,TimePerDay
)
SELECT activity
,Cast(starttime AS DATE) AS DATE
,SUM(datediff(second, starttime, endtime)) / 60.0 AS TimePerDay
FROM cte WITH (NOLOCK)
WHERE starttime >= dateadd(week, @LastXWeeks, last_update)
GROUP BY activity
,cast(starttime AS DATE)
例如,您可以这样做:
SELECT activity
,DATEADD(wk, DATEDIFF(wk,0,Cast(starttime AS DATE)), 0) AS Week
,SUM(datediff(second, starttime, endtime)) / 60.0 AS TimePerDay
FROM cte WITH (NOLOCK)
WHERE starttime >= dateadd(week, @LastXWeeks, last_update)
GROUP BY activity
,DATEADD(wk, DATEDIFF(wk,0,Cast(starttime AS DATE)), 0)
您可能需要根据一周的实际开始日期调整代码。这适用于周一至周日。