2013-11-21 16 views
0

我有這個表在我的數據庫,我哈瓦歷史與entrys:SQL - Select語句不存在每個ID的條件?

Tabelname:活動

ActivityID | DateBegin | DateEnd 
1   2013-01-01 2013-01-15 
1   2013-01-15 9999-12-31 
2   2013-01-20 2013-03-15 

現在我想編寫一個查詢將與DateEnd = 9999-返回的ID 12-31。在這個例子中,我想返回唯一ID 2

我寫此查詢,但它不工作:(我得到空的return語句)

SELECT ActivityID 
    FROM [dbo].[Activity] 
    where NOT EXISTS (SELECT ActivityID from 
        Activity where DateEnd ='9999-12-31') 

有人可以幫我嗎?

非常感謝

+1

爲什麼你使用'NOT EXISTS'? – MusicLovingIndianGirl

+0

絕對使用'select * from table where dateend <>'9999-12-31'' –

回答

1
SELECT ActivityID 
FROM dbo.Activity As x 
WHERE NOT EXISTS (
     SELECT ActivityID 
     FROM dbo.Activity 
     WHERE DateEnd ='9999-12-31' 
     AND ActivityID = x.ActivityID 
     ) 
0

請您嘗試一下

SELECT ActivityId from Activity where DateEnd != CONVERT(varchar(10), '9999-12-31',101) 
+0

檢查您的查詢的輸出 – DevelopmentIsMyPassion

2

如果你想返回所有沒有任何行與日期9999-12-31的ID,你應該先檢查你不想返回哪些ID,然後在你的查詢中避免它們。

所以查詢變爲:

SELECT ActivityID 
    FROM [dbo].[Activity] 
    WHERE ActivityID NOT IN (SELECT ActivityID from 
       [dbo].[Activity] WHERE DateEnd ='9999-12-31')