我有一個人的表,inactive-flag
(位)表示有效/無效和fromdate
,todate
。SQL Server:WHERE子句中排除選擇中的數據
a)不活動= 1表示某人是普通的「不活躍」。 如果在fromdate和todate字段中存在日期,則意味着他在此日期期間通常不處於活動狀態
EXCEPT
。b)非活動= 0表示某人是一般「活躍」。 如果在
fromdate
和todate
字段中存在日期,則表示在此日期期間通常他是活動的EXCEPT
。c)Last Option是僅有Inactive = 0,沒有任何日期異常(fromdate和todate字段爲
NULL
)的人。
我想過濾所有人a)和c),除了b)。
我嘗試了很多,但無法解決問題。
我找到了a)和c)的解決方案,但沒有找到b)的解決方案。 我試過二):
WHERE inaktiv=0 AND (Not (fromdate >=convert(date,getdate()) AND todate <=convert(date,getdate())))
你可以使用「聯合」與多選擇陳述 –
爲什麼你想b)的情況下,如果你只想a)和c)的情況? –
你忘了'或Inactive = 1'。另外,將比較日期的否定與日期混淆可能是絕對清楚的(fromdate <@date和todate> @date)' –