【问题标题】:How can I get an SQL query to display only entries for the last week?如何获取 SQL 查询以仅显示上周的条目?
【发布时间】:2013-08-05 14:21:27
【问题描述】:
我基本上是在尝试生成一份报告,其中显示了我们本周所有发票的过滤列表。 (此报告将在星期三完成,因此自上个星期三以来的所有发票)
这是我的 WHERE 语句的代码:
其中 e.TotalCount = 1 或 e.LastThreeMonths = 1
AND OINV.[TaxDate] >= (GETDATE() - 7)
第一部分 (e.TotalCount....) 一切正常且适合,但即使使用第二个过滤器,查询仍会返回所有结果,无论日期如何。
我是个彻头彻尾的白痴还是应该按预期工作..?
【问题讨论】:
标签:
sql
date
where
getdate
【解决方案1】:
添加括号将第二个条件与第三个条件分开:
WHERE (e.TotalCount = 1 OR e.LastThreeMonths = 1)
AND OINV.[TaxDate] >= (GETDATE() - 7)
AND 优先于 OR,因此您的标准并未将日期要求应用于所有行,仅适用于具有 e.LastThreeMonths = 1 的行