【发布时间】:2023-03-18 18:22:01
【问题描述】:
请求分为两部分:
记录应该从报告中脱落 _*如果记录已过期并且 如果 *_
RecordStatus != 'Funded'.记录应保留在报告中 _如果
RecordStatus = 'Funded'*,没有*PURCHASEDATE,并且如果记录已过期(过去来自**currentdate)。
我尝试使用CASE 执行此操作,但此请求似乎是布尔逻辑,因此不切实际。我试图调查IF...THEN...ELSE,但我不知道该怎么做。我花了整整 2 天的时间试图让它发挥作用,但我一无所获。有没有人可以帮我解决这个问题然后解释一下?
下面是一个简单的失败示例(是的,我完全理解失败是由于条件,而不是表达式):
Select distinct ...
from ... --with joins
where ...
and case when RecordStatus != 'Funded' then getdate() <= EXPIRATIONDATE else ?? end
谢谢!!
【问题讨论】:
-
所以,
RecordStatus的状态为Funded或其他值,PurchaseDate的值为日期或null。到期日期是一列还是您在查询中提供的参数? -
根据条件在 where 子句中使用
AND和OR。
标签: sql sql-server conditional-statements where