質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

2回答

182閲覧

SQLのクエリの条件式について

syun_0818

総合スコア11

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2018/05/16 01:09

SQLServerのDBから特定の行を取得したいのですがうまくいかないためこちらに質問いたします。

キーIDタイプ
1appleA
2orangeA
3appleB
4peachA
5grapeA
6grapeB

上記のようなテーブルがあるとします。
そのテーブルから[タイプ]が'A'でかつ[ID]が[タイプ]Bとして登録されていないもののみ
(orange,peach)を取得したいのですがうまくいきません。

ご教授していただけますと幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

NOT EXISTSをかければいいでしょう(手元にSQL Serverがないので、微妙に違っている可能性もあります)。

sql

1SELECT ID from table_name AS t1 WHERE タイプ = 'A' AND NOT EXISTS( 2 SELECT 1 FROM table_name AS t2 WHERE t2.タイプ = 'B' AND t1.ID = t2.ID 3) 4

投稿2018/05/16 01:19

編集2018/05/16 01:20
maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syun_0818

2018/05/16 02:17

maisumakun様 早速のご回答ありがとうございます。 こちらのやり方でうまくいきましたためBAとさせて頂きました。
guest

0

タイプ[A]で抽出して[B]がないか調べる

sql

1with cte as ( 2 select 1 as k,'apple' as n,'A' as t 3 union all 4 select 2,'orange','A' 5 union all 6 select 3,'apple','B' 7 union all 8 select 4,'peach','A' 9 union all 10 select 5,'grape','A' 11 union all 12 select 6,'grape','B' 13) 14 15select * from cte as C 16where C.t='A' 17 and not exists( 18 select 0 19 from cte as A 20 where A.t='B' 21 and A.n=C.n 22)

投稿2018/05/16 01:19

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syun_0818

2018/05/16 02:38

sousuke様 早速のご回答ありがとうございます。 先の方のやり方で解決いたしました。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問