如何修改MS SQL Server查询实现过去7天检测结果按日分组统计
修改后的查询语句
SELECT CAST(tblLabTestResult.CollectionDate AS DATE) AS [Date], tblLabTestResult.Result AS Result, COUNT(tblLabTestResult.Result) AS Total FROM PncRegDb.dbo.tblLabTestResult AS tblLabTestResult WHERE tblLabTestResult.TestName like '%cov%' AND tblLabTestResult.TestName NOT like '%aoe%' AND tblLabTestResult.TestName NOT like '%antibody%' AND tblLabTestResult.CollectionDate >= DATEADD(DAY, -7, CAST(GETDATE() AS DATE)) AND tblLabTestResult.CollectionDate < CAST(DATEADD(DAY, 1, CAST(GETDATE() AS DATE)) AS DATETIME) GROUP BY CAST(tblLabTestResult.CollectionDate AS DATE), tblLabTestResult.Result ORDER BY [Date] ASC, Result ASC;
修改说明
- 替换了SELECT子句中固定的
'__DATE__'取值,改为提取tblLabTestResult.CollectionDate的日期部分作为输出的Date字段,无需再通过Python脚本替换宏。 - 调整了WHERE条件中的时间范围过滤逻辑:
DATEADD(DAY, -7, CAST(GETDATE() AS DATE))会自动计算7天前的零点,CollectionDate < 明天零点的写法比手动拼接11:59:59 PM兼容性更强,不会遗漏带毫秒精度的时间记录。 - 调整了GROUP BY分组逻辑,新增日期字段作为分组维度,实现按「日期+检测结果」两个维度统计数量,完全匹配你给出的示例输出格式。
- 新增了可选的ORDER BY排序逻辑,输出结果会按日期升序、检测结果排序,和示例展示顺序一致。
内容的提问来源于stack exchange,提问作者jftuga
相关产品推荐
相关产品推荐

