2012-09-10 144 views
0

我的表中有數據,看起來像數據過濾查詢

REF_NO PRODUCT MTR 
1  200  20 
1  200  21 
1  300  35 
1  400  42 
2  200  21 
2  399  31 

現在我渴望行,其中REF_NO和產品是相同的,但地鐵是不同的。

需要的結果是: -

REF_NO PRODUCT MTR 
1  200  20 
1  200  21 

回答

2
select t.REF_NO, t.PRODUCT, t.MTR 
from (
    select REF_NO, PRODUCT  
    from MyTable 
    group by REF_NO, PRODUCT 
    having count(distinct MTR) > 1 
) tm 
inner join MyTable t on tm.REF_NO = t.REF_NO 
    and tm.PRODUCT = t.PRODUCT 

SQL Fiddle Example

0

確定。我在寫這個問題時得到了所需的查詢。

select a.REF_NO, a.PRODUCT, a.MTR 
    from MYTABLE a, MYTABLE b 
where a.REF_NO = b.REF_NO, a.PRODUCT = b.PRODUCT 
    and a.MTR <> b.MTR; 
+0

這是什麼'這裏'a.REF_NO = b.REF_NO,a.PRODUCT = b.PRODUCT'工作? – Annjawn

+0

簡單的自加入 –

+0

如果給定的REF_NO/PRODUCT組合有多於兩行的數據,這將會(一旦修改爲編譯)給您重複的行。 – RedFilter