【发布时间】:2021-05-03 15:17:28
【问题描述】:
我构建了以下查询并提供了所需的数据,但我无法弄清楚如何在查询中创建“开始周日期和结束周日期”;下面是现有查询的图片,下面是数据集和底部是我希望结果的样子?.....任何帮助将不胜感激。
查询:
SELECT TOP (100) MONTH(DateTime) AS Month,
{ fn WEEK(DateTime) } AS week,
AVG(CASE WHEN TagName = 'RCW_TierraV.Pressure_In' THEN [Value] END) AS [Tierra Verde Avg]
FROM dbo.v_AnalogHistory
WHERE (wwResolution = 60000) AND
(TagName = N'RCW_TierraV.Pressure_In') AND
(DateTime = CONVERT(DATETIME, '2020-01-01 00:00:00', 102)) AND
(DateTime <= CONVERT(DATETIME, '2020-03-31 00:00:00', 102))
GROUP BY { fn WEEK(DateTime) }, MONTH(DateTime)
ORDER BY Month, week
查询结果:
我希望最终报告如下所示:
我将查询更改如下:
DATEADD(day, -(DATEPART(dw, GETDATE()) - 1), getdate()-1) AS WeekStart DATEADD(day, 7 - (DATEPART(dw, GETDATE())), getdate()) As WeekEnd
得到以下结果,你可以看到我很接近但日期都一样,我如何让 dateadd 函数读取 {week} 列?
'[latest results][3]
【问题讨论】:
-
您的预期结果中,一个月中的随机天数来自哪里?查询应该如何知道 2021 年第 1 个月第 1 周实际上应该从 2020 年 12 月 27 日开始?
-
请不要使用图像作为数据 - 使用格式化文本。
-
格式化文本?
-
查询将开始和结束日期定义为 "(DateTime = CONVERT(DATETIME, '2020-01-01 00:00:00', 102)) AND (DateTime
标签: sql-server database dateadd