2017-06-19 15 views
0

私は以下のようなテーブルを持っています。それを構築するのを手伝ってください。異なる条件の同じ列クエリ

例:

column 1 column 2 
111111  100 
111111  101 
111111  102 
222222  101 
222222  102 
333333  100 

だから私は100ではなく101や102と同じ列のを持ってcolumn1のを探しています。

私の上記の例から、333333 100はまさに私が100ではなく101と102

+0

あなたはどのようなデータベースを使用しているトン、あなたはこれを簡素化することができますか? – John

+0

これまで持っていたSQLサンプルを提供してください。 –

+0

私はDB2でこれを構築しています。 – Gireesh

答えて

0

を試してみてくださいを持っている、を探していますされますcolumn1値:

select column1 
from t 
group by column1 
having sum(case when column2 = 100 then 1 else 0 end) > 0 and 
     sum(case when column2 in (101, 102) then 1 else 0 end) = 0; 

これらは、あなたが気に3つの値のみがある場合はアボあなたはピボットクエリを実行しようとしているかもしれないようですね

select column1 
from t 
where column2 in (100, 101, 102) 
group by column1 
having max(column2) = 100; 
+0

ゴードンに感謝、それは完璧に働いた。 – Gireesh

0

したい場合は、group byhavingを使用することができますnot existsオペレータ

SELECT * 
FROM table t1 
WHERE column2 = 100 
AND NOT EXISTS (
    SELECT * FROM table t2 
    WHERE t1.column1 = t2.column1 
    AND t2.column2 in (101, 102) 
) 
+0

は完璧に動作します、ありがとうkrokodilko – Gireesh

関連する問題