みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessの不一致クエリについて

Accessの初心者です。二つのテーブルの異なるフィールどを比較する方法について、教えてください。

例えば、"6523610"という数字が両方のテーブルにあるかどうか調べたいとします。

テーブルA 523(フィールド名:契約コード)+610(ID)
テーブルB 6523(フィールド名:取引コード)+61(フィールド名:地域コード)

と、それぞれ構成が違います。頭につく"6"と最後の"0"は共通の数字です。クエリで新たなフィールドを作って、"6523610"にするまではわかるのですが、どのフィールドを関連づけていいかわかりません。このような場合は、不一致クエリではできないのでしょうか?
仕事で、明日中にデータを調べなければいけないので困っています。
よろしくお願いします。

投稿日時 - 2007-04-19 21:51:16

QNo.2934393

すぐに回答ほしいです

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

補足だと、気が付かないことがあって、遅くなって申し訳ありません

で、「不一致クエリ」ではなく、「一致クエリ」をフィールドをまたがって行いたいという話だと・・・

単純に行うのであれば
> 契約コード1 6&[契約コード]&[ID]
テーブルAを基にして、上記内容を式として追加して、選択クエリ作成
> 取引コード1 [取引コード][地域コード]&0
テーブルBを基にして、上記内容を式として追加して、選択クエリ作成
で、2つのクエリを作成し・・・
上記2つのクエリを元に1つの結合用選択クエリを作成する事が一番簡単です

SQL文が判るのであれば、結合線なしで、Where条件で絞込みを行う方法になりますが・・・サブクエリ等を使用してくるようになるので、SQL文が理解できないと辛いです

投稿日時 - 2007-05-07 13:51:13

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

整理してないけど・・・

SELECT "6" & Format([テーブルA]![契約コード],"000") & Format([テーブルA]![ID],"000") AS 例えば, テーブルA.契約コード, テーブルA.ID
FROM テーブルA
WHERE ("6" & Format([テーブルA]![契約コード],"000") & Format([テーブルA]![ID],"000")) Not In (SELECT Format([テーブルB]![取引コード],"0000") & Format([テーブルB]![地域コード],"00")& "0"
FROM テーブルB);

多分、こう言うこと?
> どのフィールドを関連づけていいかわかりません。
と、言うのは、Where条件の話なのでしょうか?

投稿日時 - 2007-04-20 09:20:10

補足

お礼が遅くなって、すみません。
SQLは、まだよくわからないのですが・・・
もう一度、整理すると

テーブルAにあるレコード 523(契約コード)
テーブルBにあるレコード 6523(取引コード)

元の数値が違うので、結合線で結ぶことはできません。そこで、クエリで契約コード1、取引コード1というフィールを作りました。

 契約コード1 6&[契約コード]&[ID]
取引コード1 [取引コード][地域コード]&0

こうしてクエリに作った、契約コード1と取引コード1があっているかどうかを調べたいのです。説明不足で申しわけありません。フィールドの関連付けというのは、結合線のことです。
未だに、悩んでいますので、よろしくお願いします。

投稿日時 - 2007-05-04 10:18:46

お礼

ありがとうございました。
今日、やってみたらできました。引き続き、このようなデータ照合の仕事が続くので、勉強になりました。

投稿日時 - 2007-05-08 20:41:25

あなたにオススメの質問