2009-12-04 49 views
0

從我的其他帖子下面就...我有一個使用兩個字段做一個主鍵的表...SQL - 查找丟失的數據/負搜索

TravelEventID RemarkNo Keyword  Text 
0001   1   TVL   LOWCOST BOOKING 
0001   2   TVL   CREDIT CARD USED 
0001   3   PSG   COST CENTRE REQUIRED 
0001   4   PSG   EMPLOYEE NUM REQUIRED 
0002   1   TVL   CREDIT CARD USED 
0002   2   AGT   BOOKED BY AGENT 
0002   3   AGT   CONFIRM WITH AIRLINE 
0002   4   TVL   LOWEST FARE CONFIRMED 
0002   5   TVL   NO CANCELLATION CHARGE 
0003   1   TVL   LOWCOST BOOKING 
0003   2   TVL   CARRIER : EASYJET 
0003   3   TVL   LOWEST FARE CONFIRMED 
0004   1   TVL   LOWCOST BOOKING 
0004   2   TVL   CREDIT CARD USED 

我需要提取TravelEventID哪裏該文本不包含LOWCOST預訂。 I.E從示例表我只想要0002.

我嘗試並執行一個查詢,其中文本<>'LOWCOST BOOKING'然而,這顯然與大多數行匹配,因此我找回所有TravelEventID。

希望我已經解釋了我自己! 乾杯 達倫

+0

您正在使用什麼數據庫? – 2009-12-04 17:16:50

回答

3
SELECT DISTINCT T.TravelEventID 
    FROM Table T 
WHERE NOT EXISTS(SELECT * FROM Table T2 WHERE T.TravelEventID = T2.TravelEventID AND T2.Text = 'LOWCOST BOOKING') 
2

你可以嘗試這樣的事情

SELECT DISTINCT TravelEventID 
FROM Table WHERE TravelEventID NOT IN (
SELECT TravelEventID 
FROM Table 
WHERE Text = 'LOWCOST BOOKING' 
) 
+0

我改正了你的錯字:'NOT IN(SELET TravelEventID' – 2009-12-04 17:16:01

+0

非常感謝你,X- – 2009-12-04 17:25:50

+0

謝謝 - 這也很好! – DarrenNavitas 2009-12-04 21:57:11