2013-10-17 75 views
0

我有一個表結構的SQL Server 2008陣列查詢

ID   [integer] 
Name 
RecoveryID [integer] 
date 

我想用一個陣列上的RecoveryID搜索和顯示陣列中所有那些沒有相應的記錄。

所以,如果我的表包含

1,'John',1,20-10-2013 
2,'John',4,20-10-2013 
3,'John',5,20-10-2013 

我搜索的RecoveryID與陣列[1,2,3,4,5,6]我想要的結果[2,3,6]

我一直在使用各種INNOT IN陳述試過,但我總是得到我所擁有的,而不是我沒有的。

爲了進一步嘗試和解釋,我試圖在沒有第二個表的情況下外連接。我有一個用戶列表,可以完成的事情列表(1,2,3,4,5,6,7)以及特定用戶需要完成的事情列表。 {[John],(1,2,7)}例如。

如果約翰完成行動1,我的工作表現在包含('約翰',1,20-10-2013)行動2 & 7剩餘。我有清單(1,2,7)如何查詢工作表以便返回(2,7)?

+0

不同於論壇的網站,我們不使用的「謝謝」,或者「任何幫助表示讚賞」,或簽名(因此)。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) –

+0

你是否使用過IN和NOT IN的組合?這很簡單 –

+0

對不起兄弟,我不明白你的問題,你的表中有3個數據與數組結構,你試圖得到結果與2,3,6? –

回答

0

可以使用除設置操作:

SELECT n 
FROM (VALUES(1),(2),(3),(4),(5),(6)) AS Nums(n) 
EXCEPT 
SELECT RecoveryID from table1 
+0

這並沒有很好的工作,但它確實發送我在正確的軌道上:'SELECT items.recovered FROM ( VALUES ('1'),('2'),('3'),('4') )AS items(恢復) EXCEPT SELECT從dbo.TR_CGradeReport中恢復;'我不知道爲什麼要添加apostrohes ,但是嘿!它的工作原理:) –

+0

是的,如果你遇到兩套,你需要找到結果作爲A-B,你可以使用Except運算符。 – Deepshikha