问题描述
我构建了以下查询并提供了所需的数据,但我不知道如何在查询中创建“开始周日期和结束周日期;下面是现有查询的图片,下面是数据集和底部是我希望结果的样子?..... 任何帮助将不胜感激。
查询:
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()) 作为周末
并得到以下结果,如您所见,我很接近但日期都相同,我如何让 dateadd 函数读取 {week} 列?
'[latest results][3]
解决方法
尝试这样的事情:
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],DATEADD(day,-(DATEPART(dw,DateTime) - 1),DateTime) AS WeekStart
DATEADD(day,7 - (DATEPART(dw,DateTime)),DateTime) As WeekEnd
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
,
我终于搞定了,谢谢你的帮助。