2017-06-21 13 views
-3

要件:Default1に設定されているが、0に設定されていないログインIDが何であるか把握する必要があります。ルールは、すべてのLoginIDはDefault0または1とすることができますが、LoginIDに対して少なくとも1つのレコードが0である必要があります。同じテーブルに参加する

以下の表のとおり

LoginID Default 
A  0 
A  1 
A  1 
B  1 
B  1 
B  1 
B  1 
C  0 
D  0 
D  1 
E  0 
E  1 
E  1 
+1

あなたはもう少し説明したり、サンプル出力を追加してくださいすることができ? –

+1

私はあなたがこれのためのJOINを必要とは思わない。 – Cheloide

答えて

0

:私はgroup byhavingを使用してこの種の問題にアプローチする傾向がある

SELECT DISTINCT LoginID 
    FROM yourtable 
WHERE Default = 1 
    AND LoginID NOT IN (SELECT LoginID FROM yourtable WHERE Default = 0) 
1

最も簡単な解決策は、MINUS演算子を使用することです。

select loginID from your_table where default = 1 
minus 
select loginID from your_table where default = 0 

これは1が、無0defaultを持っているログインIDのセットを生成します。

あなたのような簡単なものを探しているかもしれない
1

select loginID 
from t 
group by loginId 
having min(default) = 1; 
関連する問題