2014-10-19 42 views

回答

4

使用SQL IN子句指定您WHERE條件RequestStatus列所有合法的數值一樣

Select * 
from User 
Where RequestStatus in (1,2,3) 
and (DATEDIFF(day, getdate(), TaskCompletionDate))> 15 
+0

感謝它現在工作正常:) – 2014-10-19 17:15:46

1

試試這個:

Select * from User Where (RequestStatus=1 or RequestStatus=3) and (DATEDIFF(day, getdate(), TaskCompletionDate))> 15 
+0

+1 @戈登我解決了問題的括號,但他優化了查詢....對不起,我沒有太多的名譽,在您的答案 – 2014-10-19 17:20:18

4

我會建議將查詢寫爲:

select * 
from User 
Where RequestStatus in (1, 2, 3) and 
     TaskCompletionDate > DATEADD(day, 15, getdate()) 

的日期功能外移動TaskCompletionDate,你給SQL Server的更多機會,以優化查詢(例如,通過可能使使用索引,如果可用的和適當的)。

+0

+1。如果你將注意力放在如何結合幾種條件以及如何使用'IN'上,它可能對問題OP更有幫助。優化也很重要,但目前可能不是OP的主要關注點。 – stakx 2014-10-19 17:19:16

+0

非常感謝您的詳細解答 – 2014-10-19 18:24:34