我有一个要求,即本周的开始是星期日。但是所有的价值观都应该从星期一到星期日而不是星期六到星期六
以下是我的来源
SummedValue WeekStart CreatedDate
1349 2/25/2018 2/25/2018
982 2/25/2018 2/26/2018
60 2/25/2018 2/27/2018
196 2/25/2018 2/28/2018
200 2/25/2018 3/1/2018
30 2/25/2018 3/2/2018
500 2/25/2018 3/3/2018
500 3/4/2018 3/4/2018
我想总结如下的值
SummedValue WeekStart CreatedDate
982 2/25/2018 2/26/2018
60 2/25/2018 2/27/2018
196 2/25/2018 2/28/2018
200 2/25/2018 3/1/2018
30 2/25/2018 3/2/2018
500 2/25/2018 3/3/2018
500 2/25/2018 3/4/2018
基本上,在2/25/2018的那一周,总和值应该从2/26 / 2018-3 / 4/2018计算,应该是2468我试过各种组合
DATEADD(wk, DATEDIFF(wk,0, getdate()), 0),DATEADD(DAY, 1 - DATEPART(WEEKDAY, getdate()), CAST(getdate()AS date)) etc
我们可以在sql中执行此操作吗?
这会得到你想要的吗?
SELECT WeekStart, SUM(SummedValue) AS Sum
FROM table_name
WHERE WeekStart <> CreatedDate
GROUP BY WeekStart
这样做:
SELECT
WeekStart,
SUM(CASE WHEN DATEDIFF(dd,WeekStart, CreatedDate) BETWEEN 1 and 7
THEN SummedValue
ELSE 0 END)
FROM
yourtable
GROUP BY
WeekStart