アクセス超初心者で、上手くいかず困っていますのでご教授お願いいたします。
また、初心者のため、文面におかしい所があるかと思いますが、ご容赦ください。
アクセスのユニオンクエリの質問です。
平成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行で結合させる”にはどのようにすればよろしいでしょうか?
元々のデータ作成者は既に不在。アクセスに詳しい方も周りでいない。書籍などを読んでも、すでに出来上がっている状態のものなので、今回の問題を解決させるための方法を探すこと自体が困難(私の力不足だと思いますが)で、非常に困っている状態です。
どうかよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
参考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と同じような考え方で作れば
出来ると思います。
また、考え方を理解すれば、
リレーションシップを工夫しても出来ると思います。
※結合の→上で右クリック
No.3
- 回答日時:
いまいち状況が掴めていないので、外しているかもしれません。
私ならば、横一行にずらーっとは並べません。
比較する際にカメレオンのように目玉を動かさねばならないからです。
もし顧客ごとに一意な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 で良いと思います。
ご参考までに。
お礼が遅くなってしまい申し訳ありませんでした。
残念ながら、顧客IDのようなものはないんです・・・
UNION ALL・・・参考にさせていただきます。
No.2
- 回答日時:
ユニオンクエリーは異なるテーブルの同じようなデータを縦方向にまとめて一つのテーブルにするのが役目。
だから同じ顧客のデータは一つの行には並ぶことはありません。選択クエリーは異なるテーブルの同じようなデータを横に並べてみせてくれるのが仕事。この場合は二つのデータは一つの行に並びます。選択クエリーで二つのテーブルをまとめるにはリレーションを使います。
あなたの場合、二つのテーブルをリレーションで関連付けをした後、選択クエリーを使ってください。
お礼が遅くなってしまい申し訳ありませんでした。
やはり、ユニオンクエリでやろうとしていたこと自体が間違っていたようですね・・・
今、ちょっと忙しくなってしまい、なかなか出来ないのですが頑張ってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 消費者問題・詐欺 エディオンで店員に騙されました。どう対応すればよいですか? 8 2022/07/18 03:27
- Amazon アマゾン 7 2022/06/11 11:03
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(買い物・ショッピング) 商品に印字してあるバーコードについて 4 2022/09/25 14:12
- その他(データベース) accessについて 2 2022/05/31 16:58
- 債券・証券 高度な質問だと思いますが、知性あふれる方にお願いします。教えてください。 現在メットライフア◯コで積 7 2023/08/06 10:12
- その他(ネットショッピング・通販・ECサイト) ネットショッピングで商品を購入しました。 何度かここで相談させてもらっています。 ネットショッピング 9 2023/08/23 17:02
- 財務・会計・経理 勘定科目についてしつもんです。 2 2022/07/24 15:37
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
ビューのソートについて
-
ACCESSで容量が50MBになった...
-
Oracleで上書きImportはできま...
-
SQL文の結合(一対多)がわから...
-
テーブルで一番古いレコードだ...
-
access2000 オートナンバーで...
-
結合テーブルでINSERTする方法...
-
ユニオンクエリで複数ファイル...
-
ODBC接続で新しいレコードを追...
-
削除したテーブルを元に戻すこ...
-
left joinなどで結合対象のレコ...
-
マテリアライズドビューとスナ...
-
access 特定のレコード数までエ...
-
Accessでレコード削除ができな...
-
このISAMでは、リンクテーブル・・
-
ORA-01401が表示され、データが...
-
SQLで、重複レコードを削除
-
sql serverのテーブルレイアウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
テーブルで一番古いレコードだ...
-
ビューのソートについて
-
Oracleで上書きImportはできま...
-
accessでレコード更新直後の反...
-
このISAMでは、リンクテーブル・・
-
マテリアライズドビューとスナ...
-
アクセス レコードセットを更...
-
同一テーブルのデータを参照し...
-
htmlコードで書かれた表にphpで...
-
結合テーブルでINSERTする方法...
-
ACCESSで容量が50MBになった...
-
ERROR1062:Duplicate entry.......
-
Accessでの稼働日数計算の方法
-
削除したテーブルを元に戻すこ...
-
重複クエリを使ったデータ削除
-
Accessのインポートについて(上...
-
処理の途中で停止させ、再開さ...
-
住所のDBテーブル、マスターの...
おすすめ情報