包括一个值的所有值并过滤另一个值
Including all of one value and filtering another
我想包括每个状态的所有问题,但仅当 DateResolved 在过去 5 天内包括状态为 'Closed' 的问题。包括 DateResolved IS NULL 的所有其他状态值。
数据:
IssueStatus DateResolved
Closed 7/25/2021
Closed 7/26/2021
Closed 7/1/2021
In Progress
Deferred
Deferred
这 returns 仅 IssueStatus = 'Closed' 最近 5 天内。
SELECT IssueStatus, DateResolved FROM TABLE
WHERE IssueStatus IN ('Closed','In Progress','Deferred')
AND DateResolved >= DATEADD(d, -5, CAST(GETDATE() AS DATE))
期望的结果:
IssueStatus DateResolved
Closed 7/25/2021
Closed 7/26/2021
In Progress
Deferred
Deferred
您需要 OR
:
SELECT IssueStatus, DateResolved FROM TABLE
WHERE IssueStatus IN ('In Progress','Deferred')
OR (IssueStatus = 'Closed'
AND DateResolved >= DATEADD(d, -5, CAST(GETDATE() AS DATE)))
如果不想明确列出要包含的 IssueStatus,那么您可以尝试这样的操作
SELECT IssueStatus, DateResolved
FROM [TABLE]
WHERE (IssueStatus='Closed'
AND DateResolved >= DATEADD(d, -5, CAST(GETDATE() AS DATE)))
OR IssueStatus<>'Closed';
最简单的WHERE
子句大概是:
WHERE DateResolved >= DATEADD(day, -5, CAST(GETDATE() AS DATE) OR
IssueStatus <> 'Closed';
您不需要明确检查过去五天的“关闭”。换句话说,您可以将您想要的表述为:“在过去五天内具有解决日期或未关闭问题的所有行”。
我想包括每个状态的所有问题,但仅当 DateResolved 在过去 5 天内包括状态为 'Closed' 的问题。包括 DateResolved IS NULL 的所有其他状态值。
数据:
IssueStatus DateResolved
Closed 7/25/2021
Closed 7/26/2021
Closed 7/1/2021
In Progress
Deferred
Deferred
这 returns 仅 IssueStatus = 'Closed' 最近 5 天内。
SELECT IssueStatus, DateResolved FROM TABLE
WHERE IssueStatus IN ('Closed','In Progress','Deferred')
AND DateResolved >= DATEADD(d, -5, CAST(GETDATE() AS DATE))
期望的结果:
IssueStatus DateResolved
Closed 7/25/2021
Closed 7/26/2021
In Progress
Deferred
Deferred
您需要 OR
:
SELECT IssueStatus, DateResolved FROM TABLE
WHERE IssueStatus IN ('In Progress','Deferred')
OR (IssueStatus = 'Closed'
AND DateResolved >= DATEADD(d, -5, CAST(GETDATE() AS DATE)))
如果不想明确列出要包含的 IssueStatus,那么您可以尝试这样的操作
SELECT IssueStatus, DateResolved
FROM [TABLE]
WHERE (IssueStatus='Closed'
AND DateResolved >= DATEADD(d, -5, CAST(GETDATE() AS DATE)))
OR IssueStatus<>'Closed';
最简单的WHERE
子句大概是:
WHERE DateResolved >= DATEADD(day, -5, CAST(GETDATE() AS DATE) OR
IssueStatus <> 'Closed';
您不需要明确检查过去五天的“关闭”。换句话说,您可以将您想要的表述为:“在过去五天内具有解决日期或未关闭问题的所有行”。