0

例1:

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

例 2:

IDENT | CURRENT | SOURCE
56789 | 56789   | A 

IDENT、CURRENT、SOURCE の 3 つの列を持つテーブル。一意の CURRENT レコードが 1 つしかなく、IDENT = CURRENT (例 2) のレコードに * のみを表示するクエリを作成しようとしています。同じ CURRENT で IDENT が異なるレコードがあります (例 1)。これらのレコードは結果から除外する必要があります。

IDENT = CURRENTがEXAMPLE 1と同様の結果を表示している場所で試している現在のすべてのクエリ.何らかの方法でWHERE CURRENT COUNT = 1を使用する必要があるかどうかはわかりません.

4

2 に答える 2

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
于 2013-10-11T14:27:27.507 に答える
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
于 2013-10-11T14:24:32.617 に答える