我有一个查询,如果日期列有一组日期中的任何一个,我想在其中排除行。
我很难弄清楚如何在不过滤一个月的情况下返回正确的结果集。
我最初的尝试假设运算符 '!=' 能够指定多个变量,但我可能会误会。
如何以删除所有我不想要的指定日期的方式过滤结果?
SELECT * INTO IPS_TransactionDataAll2
FROM
[IPS_TransactionDataAll1]
where Format([Start Date], 'MM/yyyy') != ('07/2016''08/2016''09/2016''10/2016''11/2016''10/2016''01/2017''02/2017''03/2017''04/2017''05/2017''06/2017''07/2017')
Run Code Online (Sandbox Code Playgroud)
伪代码:
从 TableA 中选择到 TableB 其中日期不在 7-11/2016 和 1-7/2017 月份
Bra*_*adC 10
!=
不支持这样的项目列表。
尝试其中之一(注意项目之间的逗号):
WHERE Format([Start Date], 'MM/yyyy') NOT IN ('07/2016','08/2016','09/2016',...)
Run Code Online (Sandbox Code Playgroud)
甚至更好(更快),无需转换为文本(如果您的日期范围确实像您的示例一样连续):
WHERE [START Date] NOT BETWEEN '2016-07-01' AND '2017-07-31 23:59:59'
Run Code Online (Sandbox Code Playgroud)
由于 between 包含端点,因此等效于:
WHERE [START Date] >= '2016-07-01'
AND [START Date] < '2017-08-01'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6823 次 |
最近记录: |