2014-02-11 79 views
0

我正在寫一個查詢來過濾一些記錄,但沒有得到如何實現這一點。以下是標準。我有一個表xRef其中不包含。與marketId,promoId,dcId,refId相關的列。在表中,marketId,promoId,dcIdrefId複合的關鍵。

這意味着可能有多個記錄可能存在與promoId,marketId相同,但不同的dcId減號運算符與複合鍵

現在我有2個直流電
例如10和15,並且在這兩個DC中都有表格。
現在我需要的所有記錄

  1. 其中DCID = 10和
  2. promoId,marketId和REFID不存在於表DCID-15。

我試圖使用MINUS操作符,但因爲它是複合鍵,所以我不能使用它。我也嘗試了NOT EXISTS,但它沒有奏效。可能是我沒有以正確的方式使用。

因爲我不是一個DB人,我找不到最終的解決方案。所以我需要像你這樣的專家提供幫助。你能幫我解決這個問題嗎?

回答

1

可能是這個查詢你在找什麼:

SELECT * FROM xRef t1 
WHERE t1.dcId = 10 
     AND NOT EXISTS (SELECT dcId FROM xRef t2 
         WHERE t1.promoId = t2.promoId 
          AND t1.marketId = t2.marketId 
          AND t1.refId = t2.refId 
          AND t2.dcId = 15) 
+0

真棒......你救了我的一天。 Genius 非常感謝你... – santu