我有這個結構表中的SQL Server:查找具有一個共同的現場記錄,但不同的值等領域
Promotions
======
id
promoId
customerId
dealPeriod
lob
我需要找到的記錄組,其中promoId的記錄是相同,但customerId,dealPeriod或lob是不同的。
所以,我會提不起興趣返回此:
id promoId customerId dealPeriod lob
1 p00100 100 2013 PL
2 p00100 100 2013 PL
3 p00100 100 2013 PL
但我會想與吊球不同的值返回該組:
id promoId customerId dealPeriod lob
1 p00101 100 2013 PL
2 p00101 100 2013 PL
3 p00101 100 2013 RT
或者這組不同的客戶ID :
id promoId customerId dealPeriod lob
1 p00102 100 2013 PL
2 p00102 200 2013 PL
3 p00102 100 2013 PL
或與不同的處理週期的這個組:
id promoId customerId dealPeriod lob
1 p00103 100 2013 PL
2 p00103 200 2014 PL
3 p00103 100 2013 PL
以下是我的嘗試:
SELECT t1.id, t1.customerId, t1.promoId, t1.dealPeriod, t1.lob
FROM promotion t1
INNER JOIN promotion t2 ON t1.promoid = t2.promoid
WHERE (t1.customernumber <> t2.customernumber)
OR (t1.dealPeriod <> t2.dealPeriod)
OR (t1.lob <> t2.lob)
這將返回的記錄,包括那些我不想:
id promoId customerId dealPeriod lob
1 p00100 100 2013 PL
2 p00100 100 2013 PL
3 p00100 100 2013 PL
4 p00101 102 2013 RT
5 p00101 102 2013 RT
6 p00101 102 2013 RT
問題要求c頌歌必須表現出最小的努力。請使用您的代碼更新您的問題,向我們展示您嘗試過的內容。 – Kermit
用我的查詢更新。 –