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

アクセス超初心者で、上手くいかず困っていますのでご教授お願いいたします。
また、初心者のため、文面におかしい所があるかと思いますが、ご容赦ください。

アクセスのユニオンクエリの質問です。
平成21年度 商品“1”データ一覧、平成21年度 商品“2”データ一覧というクエリがあります。
それぞれのクエリに顧客情報として、氏名や契約日などの情報が入っています。
上記それぞれのクエリをユニオンクエリの構文にて、商品2を1のデータに結合させました。
下記が構文の式です。

SELECT 担当,電話番号,契約者名,契約者住所,商品名1,契約日,支払方法,支払回数,毎月支払額,販売価格,"","","","","",""
FROM 平成21年度 商品1データ一覧
UNION SELECT 担当,電話番号,契約者名,契約者住所,"","","","","","",商品名2,契約日,支払方法,支払回数,毎月支払額,販売価格
FROM 平成21年度 商品2データ一覧;

となっています。
しかし、上記の構文内容では、思ったような結果になりませんでした。
結果は、お客様A~商品1~、違う行にお客様A~商品2~と別れてしまっている状態です。

最初は、商品名1と2で別々にコピーを出していたのですが、これでは参照しにくいということで、ダメ出しを食らいました。

希望内容としては、担当-電話番号-氏名-住所-商品名1-契約日-支払方法-支払回数-毎月支払額-販売価格-商品名2-・・以下商品名1の名目と同じ。
という様に、お客様の個人情報、商品名1とその詳細、商品名2とその詳細を“1行で結合させる”にはどのようにすればよろしいでしょうか?

元々のデータ作成者は既に不在。アクセスに詳しい方も周りでいない。書籍などを読んでも、すでに出来上がっている状態のものなので、今回の問題を解決させるための方法を探すこと自体が困難(私の力不足だと思いますが)で、非常に困っている状態です。
どうかよろしくお願いいたします。

A 回答 (3件)

参考URLを見てください。


http://homepage2.nifty.com/mathpara/programing/a …

外部結合、LEFT JOIN、RIGHT JOINがキーワードです。

まず、商品1と2を買った契約者だけ抽出する。
これは出来てますよね。
そして、契約者が重複しない一覧にする(クエリでグループ化)。
※契約者IDがあるならIDでまとめた方が考えやすい
これで商品1と2だけの契約者一覧ができる・・・A

次に契約者ID、商品1の契約内容のクエリ・・・B
次に契約者ID、商品2の契約内容のクエリ・・・C
を作り、
あとは参考URLと同じような考え方で作れば
出来ると思います。

また、考え方を理解すれば、
リレーションシップを工夫しても出来ると思います。
※結合の→上で右クリック
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ありませんでした。
参考URL見させていただきました。私に出来るか分からないですが頑張ってみます。

お礼日時:2011/12/02 15:40

いまいち状況が掴めていないので、外しているかもしれません。


私ならば、横一行にずらーっとは並べません。
比較する際にカメレオンのように目玉を動かさねばならないからです。

もし顧客ごとに一意なIDがあれば(同姓同名の人がいる場合を考慮)、ユニオンクエリで
SELECT '商品1' AS F0,担当,電話番号,契約者ID,契約者名,契約者住所,商品名1 AS 商品名,契約日,支払方法,支払回数,毎月支払額,販売価格
FROM 平成21年度 商品1データ一覧
UNION ALL
SELECT '商品2' AS F0,担当,電話番号,契約者ID,契約者名,契約者住所,商品名2,契約日,支払方法,支払回数,毎月支払額,販売価格
FROM 平成21年度 商品2データ一覧
ORDER BY 契約者ID,F0

ではダメかな?
UNION でつなぐと重複が排除されますので、その分時間が掛かります。
UNION ALL で良いと思います。
ご参考までに。
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ありませんでした。
残念ながら、顧客IDのようなものはないんです・・・

UNION ALL・・・参考にさせていただきます。

お礼日時:2011/12/02 15:50

ユニオンクエリーは異なるテーブルの同じようなデータを縦方向にまとめて一つのテーブルにするのが役目。

だから同じ顧客のデータは一つの行には並ぶことはありません。
選択クエリーは異なるテーブルの同じようなデータを横に並べてみせてくれるのが仕事。この場合は二つのデータは一つの行に並びます。選択クエリーで二つのテーブルをまとめるにはリレーションを使います。
あなたの場合、二つのテーブルをリレーションで関連付けをした後、選択クエリーを使ってください。
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ありませんでした。
やはり、ユニオンクエリでやろうとしていたこと自体が間違っていたようですね・・・

今、ちょっと忙しくなってしまい、なかなか出来ないのですが頑張ってみます。

お礼日時:2011/12/02 15:43

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

関連するカテゴリからQ&Aを探す