2013-09-30 36 views
0

我期待在SQL Server中進行查詢。
需要被滿足的標準是:SQL Server:只返回記錄,其中每個多個事件具有一些重複的非唯一返回

1)需要有在第1欄和3(例如第1欄= A和col多個重複記錄3 = X三次)

2)僅回說記錄時,第2欄有一個以上的價值在多個事件(在第1欄和第3欄前,A和X具有山坳2 = 1和2)

在plainish說話......

選擇全部 其中col 1,col 3> 1

但col 2不能重複 除非已經有不同的值,然後返回剩餘的值,只要它們等於其中一個不同的值

我的問題是我還沒有找不到在下面的例子中擺脫col 1 = E的情況。

例子:

col 1 | col 2 | col 3 
A  | 1  | Y 
A  | 1  | X 
A  | 2  | X 
A  | 2  | X 
B  | 1  | X 
B  | 1  | Y 
C  | 1  | X 
C  | 2  | Y 
D  | 1  | Y 
D  | 2  | Y 
E  | 1  | X 
E  | 1  | X 
F  | 1  | X 

期望的結果:

col 1 | col 2 | col 3 
A  | 1  | X 
A  | 2  | X 
A  | 2  | X 
D  | 1  | Y 
D  | 2  | Y 

(編輯:切換行關口,更新的標題)

+0

我想你可能需要更改C的行在你的問題中的olumn - 這有點混亂。 – Paddy

回答

0
SELECT test.COL1,test.COL2,test.COL3 FROM test, 
( SELECT COL1,COL3 FROM test 
    GROUP BY COL1,COL3 
    HAVING COUNT (DISTINCT COL2)>=2 
) table2 
WHERE test.COL1=table2.COL1 AND test.COL3=table2.COL3 

看這裏http://sqlfiddle.com/#!3/2ba37/4/0

+0

你是救命的人,感謝您的幫助! – Kevin