sql - 扩展多个日期的 SQL 查询
问题描述
我有一个包含__DATE__
宏的 SQL 查询。Python 脚本将这个宏替换为当前日期,然后执行该语句,从而提供一天的数据。
- 对于选择的第一个项目,我想使用
tblLabTestResult.CollectionDate
而不是__DATE__
. - 我想包括前 7 天,而不仅仅是当天。
- 所需的输出类似于:
Date,Result,Total
2021-08-28,Detected,5
2021-08-28,Not Detected,9
2021-08-29,Detected,23
2021-08-29,Not Detected,6
2021-08-30,Detected,88
2021-08-30,Not Detected,26
当前查询:
SELECT
'__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 >= '__DATE__'
AND tblLabTestResult.CollectionDate <= '__DATE__ 11:59:59 PM'
GROUP BY
tblLabTestResult.Result;
如何更改我的 SQL 查询以适应这些要求?我在用MS SQL Server.
解决方案
您可以使用 DATEADD() 函数获取 7 天前的日期,并使用 date-7days 和 date 之间的所有日期。我在下面的查询中更新了 where 条件:
SELECT
'__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 between DATEADD(day, -7, '__DATE__') and '__DATE__ 11:59:59 PM'
GROUP BY
tblLabTestResult.Result;
推荐阅读
- visual-studio-2017 - VSTS 负载测试:无法停止运行 .css 文件
- css - 是否可以将自定义样式应用于特定 div 而不是整个页面
- java - 在 Kotlin 中访问地图中的值
- python - 在 Windows 中使用 Pywinauto 控制 Spotify 桌面应用程序
- git - 大文件不变时 Git LFS 的优势?
- java - 比较字符串中单个字母的循环
- excel - 如何在不硬编码数据范围的情况下制作 Excel 图表
- c++ - 'temp' 未声明,首先使用此函数
- python - Pyexcel:不要忽略下划线
- php - while循环在表中插入相同的值