2011-11-01 49 views
0

我搜索了這個,發現了類似的查詢,但沒有提供我正在尋找的具體結果。SQL Server 2008查詢滿足多個條件的成員

我有一個名爲所有電話號碼的表格。我需要列出所有撥打三種不同TermNumber中的每一個的所有OrigNumber

我想:

SELECT OrigNumber FROM tbl_DetailCalls 
WHERE (TermNumber='2463332121' AND TermNumber='2463334920' AND TermNumber='2463339901') 
GROUP BY OrigNumber 

我只需要滿足條件的每個OrigNumber的一個實例。

謝謝!

+1

您可以向我們展示**表格定義(列,數據類型)和樣本數據以及該樣本數據所需的輸出嗎? –

+0

OrigNumber CHAR TermNumber = TermAreaExchange INT + TermNumber CHAR
user1024050

回答

2
Select orignumber 
From tbl_DetailCalls 
Where termnumber in ('2463332121', '2463334920', '2463339901') 
Group by orignumber 
Having count(distinct termnumber)>=3 

對不起,格式化。從手機發送。

+0

謝謝你,工作,或至少給出了結果。但我不確定如何保證滿足所有條件(即OrigNumber稱爲三個TermNumber中的每一個)。 – user1024050

+1

@ user1024050:'('2463332121','2463334920','2463339901')中的termnumber僅選擇匹配三個給定termnumber值中的至少一個*的項目。 'count count(distinct term number)> = 3',在group by之後計算,進一步過濾結果,只留下那些至少有3個不同的相關'termnumber'的'orignumber'在'WHERE'子句中)。它可能應該只是「count(distinct termnumber)= 3',而不是'...> = 3',因爲在這種情況下count不能超過3。 –

+0

@ user1024050:簡而言之,想法是選擇與指定值相匹配的項目,然後在下一步中僅保留與所有值匹配的項目。 (我們已經指定了3個項目,所以檢查的次數也應該是3。) –