2013-09-30 35 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