プロが教える店舗&オフィスのセキュリティ対策術

教えてください
テーブル1に
コード コード名
111 愛知県岡崎市
121 愛知県豊田市
200 岐阜県岐阜市
500 福岡県福岡市博多区

テーブル2に
住所
愛知県岡崎市横浜町17
愛知県豊田市東京町17-6 タワー101
岐阜市千葉町652-3 ディズニー307
福岡市博多区99
とあったとき、

コード 住所
111 横浜町17
121 東京町17-6 タワー101
200 岐阜市千葉町652-3 ディズニー307
500 99

というクエリを作成したいです
テーブル1のコードをつけて、コード名以下を
表示させたいのですが、
そんなことはできますか?



とあったとき

愛知県岡崎市

A 回答 (2件)

先の回答で、勘違いがありました。


'99'を「該当なし」を表す記号であると思い込んでいました。

福岡も、岐阜と同じ理由で該当なしになっていますので、
クエリ中の'99'を'該当なし'に書き換える事で、
コード200と500については「該当なし」と表示される様になります。
    • good
    • 0

下記クエリにて、限定条件付きで変換できます。



テーブル1の「岐阜県岐阜市」と、テーブル2の「岐阜市千葉町653・・」
を結びつける条件が無く、住所に99が表示されます。


SELECT T.CODE, IIF(ISNULL(T.JUSHO),'99',T.JUSHO)
FROM [SELECT [テーブル1].[コード] AS CODE, mid([テーブル2].[住所],len([テーブル1].[コード名])+1) AS JUSHO
FROM テーブル1 LEFT JOIN テーブル2 ON LEFT([テーブル2].[住所],len([テーブル1].[コード名]))=[テーブル1].[コード名]]. AS T;

これを結び付ける事は、「不可能」と捉える事をお薦めします。
まず、この結び付け処理はクエリ一発では出来ず、
結び付け条件をよく考慮し決めた上で
データを一件ずつ比較するプログラムを書かねばなりません。
そうして変換した結果も、思わぬデータ同士が結びついてしまう等、
変換精度に問題が出る可能性が高いです。

上記を鑑み、
「テーブル2のデータには、必ず県を存在させる」あるいは
「99のデータは人力で補完する」という条件付きであれば、
ある程度実用になると思います。
「教えてください テーブル1に コード コ」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!