• ベストアンサー

ある条件を持たないレコードの抽出

下記のようなデータがあります。 col1 col2 ========== 001 AAA 001 BBB 001 CCC 002 AAA 002 CCC 003 BBB 003 CCC 004 AAA col2 にBBB を持たないレコードを抽出したいのですが どのようにSQLを記述すればよいかご教授ください。 得たい結果 002 004 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.1

BBBを含むCol1を求めて、そのCol1をふくまない条件を指定すればよいです。 create table TableName ( col1 varchar2(3), col2 varchar2(3) ); insert into TableName values('001', 'AAA'); insert into TableName values('001', 'BBB'); insert into TableName values('001', 'CCC'); insert into TableName values('002', 'AAA'); insert into TableName values('002', 'CCC'); insert into TableName values('003', 'BBB'); insert into TableName values('003', 'CCC'); insert into TableName values('004', 'AAA'); select distinct col1 from TableName where col1 not in ( select col1 from TableName where col2 = 'BBB' ) order by col1; COL1 ---- 002 004

Wanko-san
質問者

お礼

どうも有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

select distinct col1 from テーブル t1 where not exists ( select 1 from テーブル t2 where t1.col1=t2.col1 and t2.col2 = 'BBB') もありかと。

Wanko-san
質問者

お礼

有難うございます。勉強になります。

全文を見る
すると、全ての回答が全文表示されます。
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

いろんな書き方があると思いますが、 select col1 from テーブル group by col1 having count(case when col2='BBB' then 1 else null end) = 0; とかでしょうか。

Wanko-san
質問者

お礼

どうも有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 抜けている番号を抽出したい(Access2003)

    主キーのフィールドには AAA000001 AAA000002 AAA000004 BBB000001 BBB000003 BBB000004 CCC000001 CCC000005 ・ ・ ・ というレコードが多数あるのですが これだけなら AAA000003 BBB000002 CCC000002 CCC000003 CCC000004 がないというのがぱっと見でわかるのですが データが数千レコードあります。 クエリなどで抽出する方法ありますでしょうか? よろしくお願いします。

  • JavaScriptでXMLレコードセットの検索・抽出

    お世話になります。 blue-horse と申します。 JavaScript上に、データベースのテーブルをXML形式で取出しました。 このXMLレコードセットをSQLのWHERE条件の様に、条件指定して検索・抽出したいのですが、どの様な方法があるのでしょうか。 現在は、ノードを順次巡って一致すればフラグを立て(以下略) と言う方法で考えていますが、ややこしくて仕方ありません。 何か良い方法がございましたら、ご紹介頂ければ有り難いです。 以下、やりたいことサンプル -------------------------------------------------------------- XML1: <recordset>   <record row='001'>     <col_01>abc</col_01>     <col_02>123</col_02>     <col_03>XXX</col_03>     <col_04>AAA</col_04>   </record>   <record row='002'>     <col_01>abc</col_01>     <col_02>456</col_02>     <col_03>ABC</col_03>     <col_04>AAA</col_04>   </record>   <record row='003'>     <col_01>abc</col_01>     <col_02>456</col_02>     <col_03>ABC</col_03>     <col_04>CCC</col_04>   </record>   <record row='004'>     <col_01>xyz</col_01>     <col_02>123</col_02>     <col_03>BBB</col_03>     <col_04>AAA</col_04>   </record> </recordset> 上記のXML1がJavaScript上に取得されており、それを操作して、 col_02 = '456' かつ col_03 = 'ABC' に一致する col_04 の値を抽出したXML2をJavaScript上に生成したい。

  • SQLについて

    レコード1 |レコード2 |レコード3 AAA |1111 |0000 BBB |1111 |0000 CCC |2222 |2222 CCC |3333 |2222 CCC |4444 |2222 上記のようなテーブルがあった場合、レコード1のAAAとBBBは値をそのまま抽出し レコード1のDDDはレコード2とレコード3の値が一致しているものを抽出したいのですが ひとつのSQLで実現することは可能でしょうか? レコード2とレコード3の値が一致しているものを抽出だけなら簡単にできそうなのですが AAAとBBBもというところで悩んでます。どうかご教授ください。

  • SQL select 2つの日時データの結合

    SQLで2つの日時データについて、片方の日時に一番近い別データのレコードを結合して抜き出したいです。 <Table1> 日時A data1 2020/07/01 10:00:00 1000 2020/07/01 11:00:00 1000 <Table2> 日時B col1 2020/07/01 9:50:00 AAA 2020/07/01 10:05:00 BBB 2020/07/01 11:10:00 CCC 上記2つのようなデータがある場合、下記のようなSELECT結果を取得したいです。 日時A data1 日時B col1 2020/07/01 10:00:00 1000 2020/07/01 9:50:00 AAA 2020/07/01 11:00:00 1000 2020/07/01 10:05:00 BBB この場合、どのような構文を使用したらよいでしょうか? お手数ですが、よろしくお願いいたします。

  • <SQL>条件付きで最小値レコードを抽出する方法

    SQLite3.7.5を使っています。 以下<抽出前>の様なテーブルから、col2の値が"FALSE"で(col1=3,4,5の3つ)かつ、col3が最小値(col3=3)であるレコードを<抽出後>のように抽出するSQL文をご教示ください。 <抽出前> col1 | col2 | col3 1 | true | 3 2 | true | 0 3 |false | 3 4 |false | 5 5 |false | 3 <抽出後> col1 | col2 | col3 3 |false | 3 5 |false | 3 自分で考えたSQL文は以下です。 抽出結果は問題ないのですが、同じSELECT文を2回書いていてだいぶ効率悪いことをしているのではないかと思い質問しました。 よろしくお願い致します。 SELECT * FROM (SELECT * FROM test WHERE (col2 = false)) WHERE col3 = (SELECT min(col3) FROM (SELECT * FROM test WHERE (col2 = false)))

  • 一覧表よりデータ条件抽出

    教えてください。 下記データ表があります。    A     B      C 1  12/1  AAA  94.1% 2  12/2  BBB  95.6% 3  12/2  BBB  (空白) 4  12/3  CCC  97.3% 5  12/4  DDD  98.4% 6  12/5  EEE  97.3% ・したいこと条件説明 12/2~12/4のデータのみを抽出 %の(空白)セル(行)は抽出しない 日付(A列)は表示しない ・表示結果    A    B 1  BBB  95.6% 2  CCC  97.3% 3  DDD  98.4% としたいのですが・・・ いろいろ試してみましたが、うまくいきません。 よろしく、ご教授のほどお願いします。

  • SQL Server:UNIONで結合した結果にIDを追加するには?

    いつも参考にさせて頂いています。 下記のような、テーブル、tabAとtabBを UNIONした結果にcol1の昇順でIDカラムをを追加して 表示するにはどのようなSQL文を書けばよろしいでしょうか? ご存知の方、宜しくお願い致します。 【tabA】 col1 col2 --------- 100 AAA 110 BBB 120 CCC 【tabB】 col1 col2 --------- 200 XXX 210 YYY 220 ZZZ 【結果】 ID col1 col2 ------------ 1 100 AAA 2 110 BBB 3 120 CCC 4 200 XXX 5 210 YYY 6 220 ZZZ

  • ACCESS初心者です。クエリの抽出条件の記述でお尋ねします。

    ACCESS初心者です。クエリの抽出条件の記述でお尋ねします。 更新クエリの定義で悩んでいます。どうしたら思い通りになるかご指導願います。 ★aaaフォーム a1 txt ★bbbテーブル b1 txt key b2 txt b3 txt ★ccc更新クエリ(bbbテーブル) b1 b2 b3 ★CCCクエリで抽出条件を色々試しますが結果は以下の○×の通りです。 遣りたい事は、aaaフォーム="1"でクエリ[ccc][b2]が"10"以上の場合に、[ccc][b3]を定数で更新させたいのですが、勉強不足で記述がどうしても分かりません。下記のiifはクエリ画面の[ccc][b2]列の抽出条件の記述です。 ○ iif([aaa][a1]="1","10") × iif([aaa][a1]="1",>="10") × iif([aaa][a1]="1",">=10") × iif([aaa][a1]="1","10"or"11"or"12"or"13") win xp pro ACCESS2003 です。 以上

  • 【ACCESS】重複チェック方法について

    下記のように、複数フィールドがあり、 フィールド1,2,3が全て同じレコードを抽出したいのですが 抽出する方法があれば、教えてください。 フィールド1 フィールド2 フィールド3 ・・・・ ――――――+――――――――+――――――――+――――― 12345 AAA aaa 12345 BBB aaa 12378 AAA aaa 12378 AAA bbb 23456 CCC bbb 23456 CCC bbb  ―>抽出したい!! 23456 CCC ccc

  • 並び替えで教えて下さい。

    並べ替えで悩んでます。ご教授下さい。 下記のようなA、B、Cというフィールドがあり それぞれデータが入っているとします。 取得する際の並び替えですが、 A B C --------------------- aaa 1 6 bbb 1 5 ccc 1 4 aaa 2 4 bbb 2 6 ccc 2 5 ORDER BY Aとすると・・・ aaa 1 6 aaa 2 4 bbb 1 5 bbb 2 6 ccc 1 4 ccc 2 5 ORDER BY Bとすると・・・ aaa 1 6 bbb 1 5 ccc 1 4 aaa 2 4 bbb 2 6 ccc 2 5 ORDER BY Cとすると・・・ aaa 2 4 ccc 1 4 bbb 1 5 ccc 2 5 aaa 1 6 bbb 2 6 となります。 私がやりたいのは下記の順で並べ替えしたいのです。 ccc 1 4 ccc 2 5 bbb 1 5 bbb 2 6 aaa 1 6 aaa 2 4 つまりORDER BY B、Cの結果の1つ目のレコードの AでGROPE BYするような感じです。 方法をご教授頂きたいと思います。 よろしくお願いします。

このQ&Aのポイント
  • MFC-L9570CDWのPC-FAXの送信履歴をPCで確認する方法について教えてください。
  • お使いの環境はWindows10で無線LAN接続し、Brother Utilitiesを使用しています。
  • 電話回線の種類はひかり回線です。
回答を見る