我CallHistory表,這些列:SELECT語句檢索什麼從來沒有發生過
CustomerId, TimeOfCall, CallResult
和CallResult我可能有這樣的值: 「下的訂單」,「要求退貨」,「技術問題」, '詢問價格'等。
我想SELECT CustomerId FROM CallHistory WHERE
客戶至少有一次「詢問價格」,但從來沒有「放置訂單」。
謝謝!
我CallHistory表,這些列:SELECT語句檢索什麼從來沒有發生過
CustomerId, TimeOfCall, CallResult
和CallResult我可能有這樣的值: 「下的訂單」,「要求退貨」,「技術問題」, '詢問價格'等。
我想SELECT CustomerId FROM CallHistory WHERE
客戶至少有一次「詢問價格」,但從來沒有「放置訂單」。
謝謝!
我想你應該能夠用單一選擇不連接或子
做試試這個:
SELECT CustomerId
FROM CallHistory
GROUP BY CustomerId
HAVING COUNT(CASE WHEN CallResult='Inquired about Pricing' THEN 1 ELSE NULL END) > 0
AND COUNT(CASE WHEN CallResult='Placed Order' THEN 1 ELSE NULL END) = 0
SELECT DISTINCT c.CustomerId
FROM CallHistory c
WHERE c.CallResult = 'inquired about Pricing'
AND NOT EXISTS(SELECT 1
FROM CallHistory c2
WHERE c2.CustomerId = c.CustomerId
AND c2.CallResult = 'Placed Order')
SELECT CustomerId
FROM CallHistory
WHERE CallResult = 'Inquired about Pricing'
EXCEPT
SELECT CustomerId
FROM CallHistory
WHERE CallResult = 'Placed Order';
非常感謝。 – Amarundo 2012-03-01 17:36:54
非常感謝。我非常喜歡這個解決方案。非常優雅,可以很容易地修改爲「詢問價格兩倍」等。 – Amarundo 2012-03-01 17:37:02