2012-09-20 21 views
0

我有一個表T,如下所示。SQL Server查詢從表中抽取組合值

我想挑一個客戶,他們的狀態爲Processed, InProgress組合。

請你幫忙,我該怎麼辦?

ClientId ClientName Status 
1   A   Processed 
1   A   Processed 
2   b   InProgress 
2   b   Processed 
3   c   Processed 
3   c   Processed 
4   d   InProgress 
4   d   Processed 
5   e   InProgress 
5   e   Processed 

結果應該是

ClientId ClientName Status 
2   b   InProgress 
2   b   Processed 
4   d   InProgress 
4   d   Processed 
5   e   InProgress 
5   e   Processed 

預先感謝您

回答

2

你在找這個?

SELECT * FROM T 
WHERE 
    clientId IN 
    (
     SELECT T1.clientId 
     FROM 
      T t1 JOIN T t2 
      ON t1.clientId = t2.clientId 
     WHERE 
      (t1.status = 'Processed' AND t2.status = 'InProgress') OR 
      (t2.status = 'Processed' AND t1.status = 'InProgress') 
    ) 
+0

@OverflowUser,哎呀,錯!糾正了SQL(我想我應該去睡覺) – Vikdor

+0

@Got結果如預期,謝謝 –

0

如果我理解你的權利,我會做這樣得到的結果

select ClientId, ClientName, Status From Table T 
where Status IN ('Processed', 'InProgress') 
+0

如果我通過dafaul把這個條件,客戶端1和3將在結果中,所以我不想看到客戶端1,3。 –