AテーブルとBテーブルの結合方法について教えてください

このQ&Aのポイント
  • AテーブルとBテーブルの結合方法について教えてください。
  • Aテーブルに市町村コードを追加する方法を教えてください。
  • クエリを使用してAテーブルの住所とBテーブルのコードを結びつける方法を教えてください。
回答を見る
  • ベストアンサー

Accsess クエリ 教えてください

Aのテーブルには日本全国に所在する住所が記入されています。 No.     住所 1 東京都世田谷区瀬田○○―× 2 愛知県名古屋市瑞穂区大喜町△△ ・ ・ Bのテーブルには、日本全国の市町村の名前とそれに対応するコードがつけられています (例) 市区町村名   コード  世田谷区     CODE○×× ・ ・ Bのテーブルを使ってAのテーブルに市町村コードを追加したいです。 (例) No.     住所                 コード 1      東京都世田谷区瀬田○○―×      CODE×× Aのテーブルの中の住所の項目と、Bのテーブルのコードを結びつけるには どのようにしたら良いのでしょうか? クエリは何度が使ったことがあるのですが、この作業のやり方が分かりません。 是非ご教授ください。よろしくお願いします。

noname#101629
noname#101629

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

  • ベストアンサー
回答No.1

クエリを新規作成して、AテーブルとBテーブルを追加します。 2つのテーブルは結合しません。 Aテーブルの住所の抽出条件に、 Like "*" & [市区町村名] & "*" と設定します。これで、2つのテーブルは関連付けられます。 ただし、市区町村名 だけだと、重複する可能性があるかも知れませんので、 その場合は、重複して出力されます。 Bテーブルの方に、都道府県名もはいっているのならいいですか。

関連するQ&A

  • 複数テーブルの条件毎での同一項目のSELECT方法

    以下のテーブルはAコードでキーになっています。 テーブルA、Bのコード・名称・住所項目は型レングスともに同一形式になります。 テーブルA Aコード 名称     住所  1   あいうえお  東京都足立区  2   かきくけこ  東京都目黒区 テーブルB Bコード  名称     住所        Aコード 100   さしすせそ  東京都荒川区    1 200   たちつてと  東京都板橋区    2 300   なにぬねの  東京都板橋区    2 400   はひふへほ  東京都江戸川区 500   まみむめも  東京都大田区 テーブルBのAコードが入力されていて、テーブルAに存在したらテーブルAから情報を取得し、 なければ、テーブルBを取得するということがしたいです。 上記例としては、SELECTの結果として以下のようにしたいです。   1 あいうえお  東京都足立区   2 かきくけこ  東京都目黒区  400 はひふへほ  東京都江戸川区  500 まみむめも  東京都大田区 何卒ご教示お願いします。

  • 別テーブルにあるデータを部分一致で選択するためにはどうしたらよいでしょ

    別テーブルにあるデータを部分一致で選択するためにはどうしたらよいでしょう。 申し訳ありません基本的なSQLを教えてください。 テーブルAに住所、テーブルBに市区町村名と市区町村コードがあり、テーブルAに当該市区町村コードを付けたしたいのですが、どうやってテーブルAとBをマッチさせればよいのでしょうか 具体的に言えば テーブルA内の住所カラムが以下のようなものを含んだデータだとします。 神奈川県横浜市中区XX-XX 東京都港区赤坂XXX ・ ・ ・ テーブルBには市区町村名カラムと市区町村コードカラムがあります。 中央区,0011 港区,0012 ・ ・ 横浜市中区,0033 横浜市南区,0034 ・ ・ (一応注釈ですがCSVのイメージだと思ってください) この2つのテーブルから合致したものに対し 神奈川県横浜市中区XX-XX,0033 東京都港区赤坂XXX,0012 という形で抽出したいのですがどのようにしたら良いのでしょうか (東京の”中央区”など重複する可能性のあるものはデータ側で対応しますので重複しないと考えて結構です) よろしくお願いいたします。

  • クエリで2つずつ取り出す方法について

    毎度お世話になっております。 WindowsXP、Access2003を使用しております。 以下のテーブル1があります。 [テーブル1] CODE   日付  A    20080101  A    20080102  A    20080103  B    20080101  C    20080101  C    20080103  C    20080104 CODEごとに、日付の若いものから2行ずつ、 1つしかないものは1行のみ抽出したいのです。 [希望する結果] CODE   日付  A    20080101  A    20080102  B    20080101  C    20080101  C    20080103 これはクエリで可能なのでしょうか。 ご教授よろしくお願いします。

  • ORACLE 効率の良いDB設計について

    複合キーとはこういう時に使うのでしょうか? テーブルが2つあるとします。 テーブルAは、CODE テーブルBは、CODE1,CODE2,NAME とします。 テーブルAの"CODE"とテーブルBの"CODE1"+"CODE2"をキーに テーブルBの"NAME"を取得する場合。 たとえばテーブルAのCODEに"A1B1"という値が入っていて テーブルBのCODE1,CODE2の値にそれぞれ、"A1"、"B1"が入っている場合、テーブルBの主キーはCODE1とCODE2の二つにした方が効率がいいですか? select テーブルA.code,テーブルB.name from テーブルA,テーブルB where テーブルA.code = テーブルB.code1 || テーブルB.code2 ↑あっているかちょっと自信がないですが こういった処理をしたいと思っています。 よろしくお願い致します。

  • ACCESS2000でSQLのループがうまくいかない

    ACCESS2000のVBAを使ってプログラムを組んでおります。 テーブル・クエリの構成等は以下のようになることが目的です。 【テーブルA】:全国営業所住所情報         1.新住所コード(数値)         2.都道府県名(テキスト)         3.漢字市区町村名(テキスト)         4.営業所が管轄している代理店名(テキスト):列名「代理店名」   【テーブルB】:営業所設立情報          1.新住所コード(数値)         2.都道府県名(テキスト)         3.漢字市区町村名(テキスト)         4.営業所設立年月(テキスト)         【テーブルC】:各営業所売上情報         1.新住所コード(数値)         2.営業所番号(テキスト)         3.商品の売上個数(数値) 【テーブルD】:メンテ用~上記、ABCを使ったクエリをVBAで作成するときにプログラムの中で参照するテーブル。         1都道府県名(テキスト)         2都道府県名グループ番号(テキスト):列名は「式1」でグループ番号は1から9まで         3各営業所名(テキスト) *テーブルの関係は  テーブルA:テーブルB:テーブルC=1:1:n。  各テーブルには「新住所コード」という共通のKEYを持っており、下記のようなリレーションシップがあります。   ●Aテーブル→Bテーブル→Cテーブル              →C'テーブル              →C''テーブル            (→は「LEFT JOIN」の意) ループは、BテーブルとCテーブル(複数)のリレーションを組むところに使っておるのですが、 きちんとプログラムが動いてくれずに悩んでおります。 どのようなプログラムを組んだほうがいいでしょうか? (私が組んだプログラムは追記させて頂きます。)

  • SQL文 抽出条件 複数の場合のやり方

    下記のような状況では どのようにSQL文を書けばよいのか教えてください。 例) テーブルA 氏名ID 住所 12345 東京都XXX区XXXX町1-1-1 12346 埼玉県XXX市XXXX町1-2-1 ・・・ テーブルB 住所(詳細に記載されているものもあれば、都道府県レベルのものもある) 東京都XXX区XXXX町 東京都▲▲区○○ 北海道 埼玉県◆◆市 ・・・ テーブルBに書いていある住所で始まる 全ての氏名IDを テーブルAから取り出したい。

  • 削除クエリーについて

    AテーブルとBテーブルで、Aテーブルの項目を元にBテーブルの項目と合うレコードを全て削除したい。 本では、「項目」に例えば「東京都」or「神奈川県」と云った文字を指定する場合が載っておりますが、そうではなく、テーブルの項目(フィールド)を指定するにはどうしたら良いのでしょうか?

  • 列の一部が追加できないクエリについて

    現在社内の顧客管理をAccessで行おうとして、まずはAccess2003にてスタンドアロンで顧客管理システムを作成し、アップサイジングウィザードを使用してSQL Server Express Editionへテーブル情報をコピーし、テーブルのリンクにて接続する状態まで来たのですが、とあるクエリで新たにレコードを追加する際に一部の列の変更が出来ないと言った現象が発生しています。既に存在している情報については問題なく変更出来ます。テーブル情報をSQL Serverにコピーする以前(mdbの状態)では正常に追加出来ていました。 問題のクエリの構成ですが、 テーブルA、テーブルB、テーブルC、テーブルD共に顧客コード(KOKYAKU_CODE)を主キーにしており、 テーブルAの顧客コード、会社名 テーブルBの○○フラグ、△△フラグ テーブルCの××コード テーブルDの□□コード を表示するようなクエリとなります。 SQLビューでFROM部分を確認すると、 「FROM ((テーブルA INNER JOIN テーブルB ON テーブルA.KOKYAKU_CODE = テーブルB.KOKYAKU_CODE) INNER JOIN テーブルC ON テーブルA.KOKYAKU_CODE = テーブルC.KOKYAKU_CODE) INNER JOIN テーブルD ON テーブルA.KOKYAKU_CODE = テーブルD.KOKYAKU_CODE;」 となっています。 このうち、新規レコード追加時にテーブルB、テーブルC、テーブルDの情報の書き換えが出来ない状態です。 恐らくリレーションの設定がおかしい為にこの様な現象になっているのだとは思うのですが、mdbの状態(アップサイジングウィザード実行前)では問題ない事や、SQL Serverのダイヤグラム等が関係しているのかがよく分からずにいます。 すみませんが助言をお願い致します。

  • ひとつのクエリで結果を出せる?

    お世話になります。 Access2010 以下のテーブルがあります。 支社テーブル 支社名    都道府県  電話番号 支社A     東京都  03-xxxx-xxxx 支社B     大阪府  06-xxxx-xxxx 支社C     神奈川県 045-xxx-xxxx 売上テーブル 支社名 売上額 A    100円 B    500円 A    200円 A    300円 C    100円 B    600円 上記2つのテーブルを使って以下の結果を【ひとつのクエリ】で表示 させたいのですが可能でしょうか。 支社名 売上額 都道府県 電話番号 A    100円 東京都  03-xxxx-xxxx B    500円 大阪府  06-xxxx-xxxx A    200円 東京都  03-xxxx-xxxx A    300円 東京都  03-xxxx-xxxx C    100円 神奈川県 045-xxx-xxxx B    600円 大阪府  06-xxxx-xxxx 要するに、売上テーブルの支社名は略称で記載されているので、 支社テーブルの支社名を略称に変換した上で、紐づけを行う必要が あります。 支社テーブルでSwitchを用いて支社AをA、支社BをB、支社CをCに 置き換えるクエリを作成し、それと売上テーブルを紐づければ 結果を得ることはできるのですが、今回はひとつのクエリで 行いたいところです。 ご教示の程、宜しくお願い致します。

  • エクセル2000で文字を抽出するには

    エクセル2000で、A列に住所が入力されていて、B列に区のみを抽出する方法を教えてください。区は3文字の場合や2文字の場合が発生します。 EX)            A                B  東京都文京区あいうえお町123     文京区  東京都世田谷区かきくけこ町234    世田谷区