2013-10-11 76 views
0

例1:SQL選擇唯一行

IDENT | CURRENT | SOURCE 
12345 | 12345 | A 
23456 | 12345 | B 
34567 | 12345 | C 

例2:

IDENT | CURRENT | SOURCE 
56789 | 56789 | A 

表3列,IDENT,電流和來源。我試圖編寫一個查詢,它只會在 只有一個唯一CURRENT記錄和IDENT = CURRENT(例2)的記錄上顯示*。有些記錄具有相同的CURRENT但不同的IDENT(示例1), 這些記錄應該從結果中省略。

目前所有的疑問我想其中IDENT =當前顯示的是類似於例1的結果不知道我是否需要以某種方式使用WHERE CURRENT COUNT = 1

+0

「我正在嘗試所有當前查詢,其中IDENT = CURRENT顯示類似於示例1的結果」,真的嗎?在例子1中,第二和第三條記錄IDENT!= CURRENT。他們如何顯示 – AgRizzo

回答

0
select * from table 
where ident=current 
and current in (select current from table group by 1 having count(*)=1) 

或無子查詢

select 
min(ident) as ident, 
current, min(source) as source 
from table 

where ident=current 
group by current 
having count(*)=1 
0
SELECT M.* 
FROM Table1 AS M 
WHERE M.IDENT = M.CURRENT 
AND (
     SELECT COUNT(*) 
     FROM Table1 AS S 
     WHERE M.IDENT = S.IDENT 
     AND M.CURRENT = S.CURRENT 
    ) = 1