• ベストアンサー

複数条件の抽出SQL文がわかりません

WinXP DB:ACCESS2000 利用しています。 DB勉強中です、よろしくお願いします。 顧客管理の抽出条件のSQL文がわかりません。 T_顧客 ID 住所   氏名   TEL   紹介者1 紹介者2 紹介者3 紹介者4 001 愛知県名古屋市○1-1 山田太郎 000-000-0001  1  2  3 002 岐阜県岐阜市000-00  近藤たろう 000-110-0001  2  003 愛知県愛知郡22-2222 後藤たろう 000-111-0001  3  4 T_紹介者 ID 住所   氏名   TEL 1 名古屋市 山田二郎 111-111-1112 2 岐阜市  安藤三郎 222-222-2222 3 津市   伊藤司郎 333-333-3333 4 静岡市  田中五郎 444-555-4445 と言うDBがありまして、以下のように抽出したいと思っています。 001 愛知県名古屋市○1-1 山田太郎 000-000-0001  山田二郎 安藤三郎 伊藤司郎 002 岐阜県岐阜市000-00  近藤たろう 000-110-0001  安藤三郎  003 愛知県愛知郡22-2222 後藤たろう 000-111-0001  伊藤司郎 田中五郎 と言ったようにしたいです。 よろしくお願いします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

クエリの作り方でいいですか 以下に手順) ・クエリをデザインで作成します ・テーブル「T_顧客」を1つ、テーブル「T_紹介者」を5つ表示させます。 テーブル「T_紹介者」を5つ表示させると、テーブル名のところが、 「T_紹介者」、「T_紹介者_1」~「T_紹介者_4」になっていると思うので、 「T_紹介者」を表示上から削除します。 「T_顧客」、「T_紹介者_1」~「T_紹介者_4」の5つが表示されているようにします。 ・「T_顧客」の「紹介者1」を「T_紹介者_1」の「ID」にドラッグします。 結合線が表示されるので、線をダブルクリックします。 結合プロパティは、'T_顧客'の全レコードと・・・・ に変更しOKボタン 紹介者2~4も同様に、 「紹介者2」を「T_紹介者_2」の「ID」に 「紹介者3」を「T_紹介者_3」の「ID」に 「紹介者4」を「T_紹介者_4」の「ID」に 結合プロパティは、'T_顧客'の全レコードと・・・・ に全て変更しOKボタン ・以下の順番にテーブル内の項目をダブルクリックしていきます。 「T_顧客」の「ID」「住所」「氏名」「TEL」 「T_紹介者_1」の「氏名」 「T_紹介者_2」の「氏名」 「T_紹介者_3」の「氏名」 「T_紹介者_4」の「氏名」 ・下に表示されている一覧部分のフィールド欄のところの「氏名」が重複しているので、 テーブルが「T_紹介者_1」の「氏名」を「紹介者1: 氏名」に変更します。同様に テーブルが「T_紹介者_2」の「氏名」を「紹介者2: 氏名」に テーブルが「T_紹介者_3」の「氏名」を「紹介者3: 氏名」に テーブルが「T_紹介者_4」の「氏名」を「紹介者4: 氏名」に このクエリの表示を、データシートビューに切り替えてみます。 良かったら保存します。

baggio100
質問者

お礼

早速の回答ありがとうございました。 ACCESSの操作方法まで丁寧に教えていただき、ありがとうございました。 思うような結果が得られて大変助かります。 ありがとうございました。

その他の回答 (1)

  • singlecat
  • ベストアンサー率33% (139/418)
回答No.1

質問のまる投げはいけませんよ それはともかく、実際はこんな感じですが.... ---------------------------------------------------- SELECT T_顧客.ID  , T_顧客.住所 , T_顧客.氏名 , T_顧客.TEL , 紹介者-1.氏名 AS 紹介者1 , 紹介者-2.氏名 AS 紹介者2 , 紹介者-3.氏名 AS 紹介者3 , 紹介者-4.氏名 AS 紹介者4 FROM (((T_顧客 LEFT JOIN T_紹介者 AS 紹介者-1 ON T_顧客.紹介者1 = 紹介者-1.ID) LEFT JOIN T_紹介者 AS 紹介者-2 ON T_顧客.紹介者2 = 紹介者-2.ID) LEFT JOIN T_紹介者 AS 紹介者-3 ON T_顧客.紹介者3 = 紹介者-3.ID) LEFT JOIN T_紹介者 AS 紹介者-4 ON T_顧客.紹介者4 = 紹介者-4.ID; ----------------------------------------------------

baggio100
質問者

お礼

早速の回答ありがとうございました。 質問まる投げでした。すいません…。 LEFTJOINTを使うのですね、早速試してみました。 思うような結果が得られました。 ありがとうございました。

関連するQ&A

  • 条件を抽出し、フラグを立てる関数

    下記条件の場合、D列に「○」フラグを立てたいです。 D列に入力する関数を教えてください。 どうぞよろしくお願い致します。 ・ B列が同じ名前の行を抽出。 ・ 抽出した行のC列に「鉛筆」「消しゴム」「ペン」が入力されている場合、   D列に「○」をつけたい。 ・ ただし、B列が同じでも、C列に「鉛筆」「消しゴム」「ペン」以外が入っていた 場合、D列には何も入れない。 ※B列には飛び飛びに同じ名前が入力されている場合もあります。 ※行は1000行ほどあります。 【前】      B列    C列 山田太郎  鉛筆 山田太郎  ペン 伊藤二郎  缶 伊藤二郎  鉛筆 鈴木五郎  ペン 鈴木五郎  消しゴム 木村三郎  消しゴム 木村三郎  鉛筆 山田太郎  消しゴム 鈴木五郎  パソコン 【後】   B列    C列    D列 山田太郎  鉛筆    ○ 山田太郎  ペン    ○ 伊藤二郎  缶 伊藤二郎  鉛筆 鈴木五郎  ペン 鈴木五郎  消しゴム 木村三郎  消しゴム  ○ 木村三郎  鉛筆    ○ 山田太郎  消しゴム  ○ 鈴木五郎  パソコン わかりにくくて申し訳ありませんが、よろしくお願いいたします。

  • SQL文を教えてください

    初心者ですので宜しくお願いします。フィールド1は県、2は市、3は特産物、4は売上とあった場合、売上が一番高い特産物を抽出する文を教えてください。下記の掲載はあくまで例えです。 愛知県瀬戸市陶器400万円 愛知県瀬戸市お花100万円 岐阜県岐阜市漆  200万円 岐阜県岐阜市お茶 100万円 岐阜県土岐市陶器100万円 なら 愛知県瀬戸市陶器400万円 岐阜県岐阜市漆 200万円 岐阜県土岐市陶器100万円というように、掲載されている県と市の高額売上の特産物を抽出したいです。

  • エクセルでのデータ抽出方法について

    Excel2010で、IDと氏名を結びつけたリスト表を作成しようと考えています。 例として以下のようなエクセル表があったとします。 ※列A・列B→ID及び氏名   列D・列E→列A・列Bから抽出したい情報        【列A】    【列B】    【列C】    【列D】    【列E】      【行1】   11111   山田 太郎    -      11119    (※「山田 九郎を」入れたい) 【行2】   11112   山田 二郎    -      11112    (※「山田 二郎を」入れたい)     【行3】   11113   山田 三郎    -       11118    (※「山田 八郎を」入れたい)     【行4】   11114   山田 四郎    -       11114    (※「山田 四郎を」入れたい) 【行5】   11115   山田 五郎              【行6】   11116   山田 六郎                【行7】   11117   山田 七郎           【行8】   11118   山田 八郎 【行9】   11119   山田 九郎         : D列は既に入力済み(確定)で、IDが割り振られている人の氏名をE列に挿入したい場合の エクセルの操作方法について教えていただきたく、よろしくお願いします。

  • 【アクセス97】アクセスからエクセルへの変換での質問

    アクセス97での質問です。 以下にあるようなテーブル(1)をエクスポートでエクセルにだします。 その際、ふつうにエクスポートするとヘッダーがでてしまいます。 これを出さずにエクスポートする方法を教えてください。 (どんな方法を使っても結果、このテーブルがエクセルに書き出されればOKです。  VBAでもかまいません・・・。) <アクセステーブル(1)> 題名     作者    ISBN番号   読み仮名 アクセス入門 田中一郎  00000000 アクセスニュウモン エクセル入門 鈴木二郎  00000001   エクセルニュウモン ワード入門  佐藤三郎  00000002   ワードニュウモン 一太郎入門  加藤五郎  00000003   イチタロウニュウモン 花子入門   伊藤六郎  00000004   ハナコニュウモン                ↓エクスポート↓ <エクセル> アクセス入門 田中一郎  00000000 アクセスニュウモン エクセル入門 鈴木二郎  00000001   エクセルニュウモン ワード入門  佐藤三郎  00000002   ワードニュウモン 一太郎入門  加藤五郎  00000003   イチタロウニュウモン 花子入門   伊藤六郎  00000004   ハナコニュウモン よろしくお願いします。

  • 愛知県尾張周辺の道路

    以下の地域で一般道路が広い、早い、空いているを総合的に見て快適な順にしてください! コメントを添えてもらえるとうれしいです! A三重県桑名市 B愛知県弥富、愛西、蟹江 C愛知県一宮、稲沢D名古屋市名東区、長久手町 E岐阜県岐阜市 よろしくお願いします!

  • 妊娠中絶の病院選び

    事情によりやむなく妊娠中絶を選択することとなりました。 そこで、立会い可能な病院をご存知の方は教えていただけないでしょうか。 出来れば名古屋市内、もしくは愛知県、岐阜県内で。 よろしくお願いします。

  • エクセルで別シートに条件の合う全てのデータ抽出

    初めまして。 いろいろ見てみたのですが解決しなかったので教えて下さい。 Sheet1には     受付日  氏名  生年月日  住所      A    B    C    D  1 2007/10/1 左藤  S50.10.10  大阪府 2 2007/10/1 鈴木  S57.04.25  奈良県 3 2007/10/2 吉村  S49.09.17  鳥取県 4 2007/10/8 山田  S49.09.09  東京都 5 2007/10/9 伊藤  S50.10.13  愛知県 6 2007/10/9 上田  S57.04.19  福岡県 上記のようなデータを下記のようにSheet2に生年月日でデータを抽出したいのですが抽出したい年月をA1に入れたらデータがとんでくるようにするにはどうすれば良いでしょうか?教えて下さい。      A    B    C    D  1  S50.10 2 2007/10/1 左藤  S50.10.10  大阪府 3 2007/10/9 伊藤  S50.10.13  愛知県 VLOOKUPで作ってみたのですが一つしかとんでこなくて下記のように全て表示でません。      A    B    C    D  1  S50.10 2 2007/10/1 左藤  S50.10.10  大阪府 3 2007/10/1 左藤  S50.10.10  大阪府 どうかよろしくお願いします。

  • PDOを使ったSQL文の入力方法

    私のやりたいことはSQL文の実行なのですが、PDOを使った操作になります。 どうかご教授お願い致します。 <th>価格帯</th> <td> <select name="price_min"> <option value="1" selected="selected">下限なし</option> <option value="10000000">1000万</option> <option value="15000000">1500万</option> <option value="20000000">2000万</option> 以下略 <th>愛知県 - 名古屋市</th> <td> <input type="checkbox" name="chiiki_id[]" value="1" <?php if (isset($_REQUEST['chiiki_id']) and in_array('1',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 中村区 <input type="checkbox" name="chiiki_id[]" value="2" <?php if (isset($_REQUEST['chiiki_id']) and in_array('2',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 西区 <input type="checkbox" name="chiiki_id[]" value="3" <?php if (isset($_REQUEST['chiiki_id']) and in_array('3',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 昭和区 <input type="checkbox" name="chiiki_id[]" value="4" <?php if (isset($_REQUEST['chiiki_id']) and in_array('4',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 港区 </td> <th>こだわり条件</th> <td> <input type="checkbox" name="kid[]" value="1" <?php if (isset($_REQUEST['kid']) and in_array('1',$_REQUEST['kid1'])) print 'checked'; ?>/> 新築 <input type="checkbox" name="kid[]" value="2" <?php if (isset($_REQUEST['kid']) and in_array('2',$_REQUEST['kid2'])) print 'checked'; ?>/> 南向き <input type="checkbox" name="kid[]" value="3" <?php if (isset($_REQUEST['kid']) and in_array('3',$_REQUEST['kid3'])) print 'checked'; ?>/> セキュリティ充実 <input type="checkbox" name="kid[]" value="4" <?php if (isset($_REQUEST['kid']) and in_array('4',$_REQUEST['kid4'])) print 'checked'; ?>/> 市街地が近い<br /> <input type="checkbox" name="kid[]" value="5" <?php if (isset($_REQUEST['kid']) and in_array('5',$_REQUEST['kid5'])) print 'checked'; ?>/> 内装リフォーム <input type="checkbox" name="kid[]" value="6" <?php if (isset($_REQUEST['kid']) and in_array('6',$_REQUEST['kid6'])) print 'checked'; ?>/> システムキッチン <input type="checkbox" name="kid[]" value="7" <?php if (isset($_REQUEST['kid']) and in_array('7',$_REQUEST['kid7'])) print 'checked'; ?>/> ペット可</td> </tr> </table> <input type="submit" value="検索" class="Btn-gray button"> </form> $sql = 'SELECT DISTINCT * FROM bukken'; //名古屋の地域checkbox if(isset($_POST['chiiki_id'])and is_array($_POST['chiiki_id'])){ $ary = array_filter($_POST['chiiki_id'], function($v) {return is_numeric($v);}); $sqlA = 'id IN (SELECT chiid FROM chiiki WHERE chiiki_id IN ('.implode(',', $ary).'))'; }else{ //print '地域がチェックされてません'; $sqlA = ' 1 '; } //kid絞り込み if(isset($_POST['kid'])and is_array($_POST['kid'])){ $ary = array_filter($_POST['kid'], function($v) {return is_numeric($v);}); $sqlK1 = 'id IN (SELECT fid FROM fudou_kodawari2 WHERE kid IN ('.implode(',', $ary).'))'; }else{ //print '<br />こだわりがチェックされてません'; $sqlK1 = ' 1 '; } のようなフォームからチェックされた値のkidのところを絞った条件で表示させたいです。下記のPHPで値を受けてSQL文をMySQLに接続してSQLを実行するのですが、中々出来ません。 そして テーブルがbukkenとkodawariがあります。 bukken id bukken_name chiiki_id address price_min price_max     station 1 名駅MID    1 愛知県名古屋市中村区 40770000 55100000 名古屋駅 2 プレサン浄心 2 愛知県名古屋市西区城西 30800000 40001000 浄心駅 3 アネシア八事 3 愛知県名古屋市昭和区 50000000 62510000 八事日赤 4 アメニ港明 4 愛知県名古屋市港区港明 25000000 35000000 港区役所駅 5 ユーハウス上飯田 15 愛知県名古屋市北区 32000000 43330000 上飯田駅 6 ローレル葵 6 愛知県名古屋市東区葵x 30000000 46000000 高岡駅 7 ライオンズ2 愛知県名古屋市西区山木 35000000 55000000 上小田井駅 8 ポレスター名西 2 愛知県名古屋市西区名西 28000000 38000000 浄心駅 fudou_kodawari2 fid kid 1 1 1 2 1 3 2 1 3 2 3 3 3 4 4 3 5 4 6 4 7 1 8 1 8 2 8 4 このようなテーブルでSELECT DISTINCT * FROM bukken WHERE (id IN (SELECT fid FROM fudou_kodawari2 WHERE kid IN (1,2,3)))と言うSQL文を入力すると id bukken_name chiiki_id address price_min price_max     station 1 名駅MID    1 愛知県名古屋市中村区 40770000 55100000 名古屋駅 2 プレサン浄心 2 愛知県名古屋市西区城西 30800000 40001000 浄心駅 3 アネシア八事 3 愛知県名古屋市昭和区 50000000 62510000 八事日赤 4 アメニ港明 4 愛知県名古屋市港区港明 25000000 35000000 港区役所駅 7 ライオンズ2 愛知県名古屋市西区山木 35000000 55000000 上小田井駅 8 ポレスター名西 2 愛知県名古屋市西区 28000000 38000000 浄心駅 kidの条件 1の場合  fidが 1,2,7,8 2の場合 fidが 1,3,8 3の場合  fidが 1,3,4 なので  1,2,3,4,7,8 という結果が表示されますが、1,2,3の全てに一致する条件しか表示できないようにする(結果が1になる)にはどのようなSQL文を入力すれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • 愛知県・岐阜県で良いペットサロンを探しています

    我が家にトイプードルがいます。 生後4ヶ月になりましたので、トリミングに出したいと思っています。 できれば岐阜県・愛知県(名古屋・一宮市)内で評判の良い、上手なペットサロンを探しています。 教えていただけると嬉しいです。 よろしくお願い致します。

    • ベストアンサー
  • エクセルのマクロで全シ-ト複数条件検索

    エクセルで全シートから複数項目で検索をかけ、条件に合う項目の行ごと 新しいシートに抽出結果として表示することは可能なのでしょうか。 初心者なりに考え、無様なコードではありますが、 検索条件が1つであれば、条件にあう行をすべて抽出することはできました。 ですが複数、または列ごと条件として指定することができず、難儀しております。 たとえば Sheet1    A    B    C    D 1      田中太郎   男   穏やか  2      鈴木次郎   女   うっかり 3      山田三郎   女   怒りっぽい 4      佐藤四郎   男   せっかち Sheet2    A    B    C    D 1      伊藤五郎   女   用心深い 2      加藤六郎   男   ずぼら 3      斎藤七郎   女   臆病 4      後藤八郎   男   陽気 Sheet3    A    B    C    D 1      【条件】 2      加藤六郎 3      鈴木次郎 4      山田三郎 5      後藤八郎 マクロ実行後↓ 新しいシート    A    B    C    D 1      加藤六郎   男   ずぼら 2      鈴木次郎   女   うっかり 3      山田三郎   女   怒りっぽい 4      後藤八郎   男   陽気 といった具合にしたいと考えております。 この場合ですと、B列全体を条件としたり、 Sheet3の条件が入力されているセルすべてを検索条件として 渡すことはできるのでしょうか。 実際のシートでは、条件が10個~100個ほどあり、 シートごとに数はばらばらになっております。 どうかわかる方、お力をお貸しください。