• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定のレコードの抽出方法について)

特定のレコードの抽出方法について

yambejpの回答

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

センスのない回答ですがとりあえず試しに SELECT `employee` ,SUM(IF(`tel` REGEXP '30',1,0)) AS OK ,SUM(IF(`tel` REGEXP '30',0,1)) AS NG FROM `w_table` GROUP BY `employee` とすると OK>0でNG>0なら30もそれ以外もつかっている OK>0でNG=0なら30だけを使っている OK=0でNG>0なら30以外しか使っていない したがって30だけしか使っていないのは SELECT `employee` FROM `w_table` GROUP BY `employee` HAVING SUM(IF(`tel` REGEXP '30',1,0)) >0 AND SUM(IF(`tel` REGEXP '30',0,1)) =0 みたいな感じ?

iroha_168
質問者

お礼

ご回答ありがとうございます。 ご教示いただいたSQL文で意図した動作になったと思います。 このたびはどうもありがとうございました。

関連するQ&A

  • SQLでの抽出条件

    SQL初心者です。初歩的な質問だと思いますが、ご教授願います。 以下のような2つのテーブルがあります。 【テーブルA】 グループ 社員番号 A 1 A 2 A 3 B 4 B 5 B 6 C 7 C 8 D 9 D 1 【テーブルB】 社員番号 1 9 テーブルBの社員番号と一致する場合、テーブルAをグループ単位で抽出しないようにしたいです。  ・グループAは社員番号1が一致するため抽出しない。  ・グループDは社員番号1と9が一致するため抽出しない。 【取得結果】 グループ 社員番号 B 4 B 5 B 6 C 7 C 8 説明が分かりづらくて申し訳ありませんが、よろしくお願い致します。

  • 抽出対象の1レコードを複数レコードへ変更し出力する方法を

    抽出対象の1レコードを複数レコードへ変更し出力する方法を SQLで教えてください。(SQLServer2000です。) <イメージ> 店番 顧客番号 年月  A B C D ・・・(Dのあと100項目つづく)・・・ 1000 12345678 200909 10 20 30 40 2000 12345678 200910 30 40 50 60 を 店番 顧客番号 年月  AからD 1000 12345678 200909 10 1000 12345678 200909 20 1000 12345678 200909 30 1000 12345678 200909 40 2000 12345678 200910 30 2000 12345678 200910 40 2000 12345678 200910 50 2000 12345678 200910 60 と出力したいのですが、SQLServer2000ではPIVOT等が使用できず。 抽出処理が思いつきません。 パフォーマンスも悪くなったりしますか。 何か良い方法をご教示ください、よろしくお願い致します。

  • SQL文 特定のレコードを抽出したい

    以下のようなテーブルAがあったとします。 年月日,項目B ---------------------- 20080101 100 20080102 100 20080103 200 20080104 400 20080105 400 20080106 200 SQL文にて、データの抽出を行いたいのですが、 抽出したいのは、データに変更があった年月日と項目Bの値です。 年月日,項目B ---------------------- 20080101 100 20080103 200 20080104 400 20080106 200 前の年月日と比較し、項目Bに違いがあった場合のデータだけ抽出したいのですが、SQL文で行うことは可能でしょうか?? 環境は、SQL Server 2005 です。

  • Accessのレコード抽出

    アクセスのレコード抽出条件で、AとB以外を抽出するためにはどのような条件づけをすればいいのでしょうか? Notを使ってみても、Not"A"ならA以外の抽出可能なのですが、Not"A"Or"B"などAとB以外の抽出設定をしたら、すべてが抽出されてしまう(例:A、B、Cすべてが表示されます) どうすれば、いいでしょうか?

  • ACCESSで抽出したフィールドに同じレコードにある値を複製したい

    A、B、Cという列があって、Aの列の値が空欄(NULL)であるレコードを抽出し、そのレコードのAの列にBの値をコピー(複製)したいのですが・・・・  説明が下手ですみません。もしクリエで不可能な場合、SQLで記述可能でしょうか。その記述文も教えていただけると助かります。よろしくお願いします。

  • 抽出方法

    SQL Server2008を使用しています。 key c1 c2 k ------------ 1 01 01 100 2 01 01 200 3 01 02 120 4 01 02 150 5 01 02 200 上記のようなデータがあるとします。 c1,c2が同じものをまとめて1レコードとして 抽出したいと思っています。 c1,c2が同じものは最大5つまでです。 合計と内訳を下記のようにまとめて 抽出するにはどのようなSQLを記述すればよいでしょうか?    ↓↓↓    c1 c2 k1 k2 k3 k4 k5 k0 --------------------------- 01 01 100 200 0  0 0 300 01 02 120 150 200 0 0 470

  • 同じ値が存在しないレコードの抽出方法について

    下記のテーブルの中で、 b_tableテーブルのidフィールドの値が1つしかない(重複していない)フィールドを抽出したいと思います(この場合ですが、3002と3004を抽出したいです)。 その際、抽出条件を下記の【※※※ここに記述を追加※※※】に記述することで実現したいと思ったのですが、その場合どのようなsql文を書けば良いか分かりませんでした。 その為、このような場合、どのようなsql文を書けば良いかご存知の方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 なお、【※※※ここに記述を追加※※※】に記述を追加したい理由ですが、既存のSQL文にこの条件を追加したいのですが、WHERE以前は別の部分に記述されており、その部分が変更できない為です。 なお、下記のWHERE以前の記述はあくまでサンプルであり、重複していないフィールドを抽出するSQL文と直接関係のない記述でしたら、変更していただいても大丈夫かもしれません(この点曖昧で申し訳ございません。移植元の記述ではテーブルを連結しているように見受けられたため、連結の仕方が多少変わる分には問題ないのかなと思っています。この点については実際にソースをご提示いただければ、それを元に移植させていただいた上で、ご回答差し上げたいと思います)。 ■SQL文 SELECT a.id FROM `a_table` AS a LEFT JOIN `b_table` AS b ON a.id = b.id WHERE 【※※※ここに記述を追加※※※】 ■a_tableテーブル CREATE TABLE IF NOT EXISTS `a_table` ( `auto_id` int(3) NOT NULL, `id` varchar(4) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `a_table` (`auto_id`, `id`) VALUES (101, '3001'), (102, '3002'), (103, '3003'), (104, '3004'); ■b_tableテーブル CREATE TABLE IF NOT EXISTS `b_table` ( `auto_id` int(3) NOT NULL, `id` varchar(4) NOT NULL, `no` varchar(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `b_table` (`auto_id`, `id`, `no`) VALUES (101, '3001', '1'), (102, '3001', '2'), (103, '3001', '3'), (104, '3002', '2'), (105, '3003', '1'), (106, '3003', '2'), (107, '3004', '1'); 以上、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 特定の値が入っているレコードを抽出する方法について

    下記のテーブルがあったとして、 field2にグループAに該当する値と、グループBに該当する値が共に1つずつ入っている field1の値を抽出したいと思いました。 下記の場合ですと、その条件を満たす1, 3, 4, 6を抽出したいと思います。 グループA:1, 2, 3 グループB:101, 102, 103 ――――――――― |field1|field2 ――――――――― |1   |1   |1   |10 |1   |101 |2   |1   |2   |15 |2   |104 |3   |2   |3   |18 |3   |101 |4   |2   |4   |17 |4   |103 |5   |3   |5   |15 |5   |100 |6   |3   |6   |18 |6   |103 ――――――――― 使用バージョンは7.4.19です。 よろしくお願いします。

  • エクセル抽出方法がわかりません

    エクセル抽出方法がわかりません   A   B  1 Aさん 19 2 Aさん 20 3 Bさん 19 4 Cさん 19 5 Cさん 20 6 Dさん 20 7 Eさん 19 抽出結果  A   B  3 Bさん 19 7 Eさん 19 19しかない人を抽出するにはどうしたらよいのでしょうか、、

  • こういうビューを抽出したいのですが...

    こういうビューを抽出するSQLを書きたいのですが、わからず困っています。 TableA (主キー:ID)  ID│CodeA ──┼───── 0001│123 0002│234  :│: TableB (主キー:ID)  ID│CodeA │CodeB │Name ──┼───┼───┼───   1│123  │A1  │XXX   2│123  │B1  │YYY   3│123  │C1  │ZZZ 欲しい抽出結果 (CodeBとNameは1行に最大5回まで存在しうる)  ID│CodeA │CodeB1│Name1 │CodeB2│Name2 │CodeB3│Name3 ──┼───┼───┼───┼───┼───┼───┼─── 0001│123  │A1  │XXX  │B1  │YYY  │C1  │ZZZ こういうのってSELECT文だけで記述できるのでしょうか? どのように記述すれば良いでしょうか?