ACCESSで複数テーブルのクエリ抽出
初めて投稿させてもらいます。
テーブル1・・・社員ID(主キー)、氏名
テーブル2・・・社員ID(重複キー有)、顧客ID
テーブル3・・・社員ID(重複キー有)、得意先ID
テーブル4・・・顧客ID、顧客氏名
テーブル5・・・得意先ID、得意先
上記のテーブル内容を1つのクエリで全部抽出するとき、
テーブル1の社員ID[a]とテーブル2の社員ID[a]
と
テーブル1の社員ID[a]とテーブル3の社員ID[a]
を分けて抽出する方法ってありますか?
クエリの結合プロパティで
テーブル2の全レコードとテーブル1の同じ結合フィールドと
テーブル3の全レコードとテーブル1の同じ結合フィールドにすると
「あいまいな外部接続が含まれているのでSQLを実行出来ません」とエラーになり、
テーブル1の全レコードとテーブル2の同じ結合フィールドと
テーブル1の全レコードとテーブル3の同じ結合フィールドにすると
社員ID[a]、顧客ID[1]、得意先ID[α]、顧客氏名[吉田]、得意先[○○商事]
社員ID[a]、顧客ID[1]、得意先ID[β]、顧客氏名[吉田]、得意先[△△金融]
みたいになってしまうのです。
やりたい結果は
社員ID[a]、顧客ID[1]、得意先ID["空欄"]、顧客氏名[吉田]、得意先["空欄"]
社員ID[a]、顧客ID["空欄"]、得意先ID[β]、顧客氏名["空欄"]、得意先[△△金融]
説明下手ですいませんが、ご教授の程よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
一つのクエリで出来るかどうかは・・・わかりません。
以下のようなことは思いつきますが。
(1)
クエリ1は二つの選択クエリをくっつけたユニオンクエリです。
それぞれに無い架空のフィールドを作成しています。したがって、
本来は相容れないフィールドをフィールド名だけ同じにして
います。
クエリ1:
SELECT テーブル2.社員ID, テーブル2.顧客ID, Null AS 得意先ID, テーブル4.顧客氏名, Null AS 得意先
FROM (テーブル1 INNER JOIN テーブル2 ON テーブル1.社員ID = テーブル2.社員ID) INNER JOIN テーブル4 ON テーブル2.顧客ID = テーブル4.顧客ID;
UNION ALL SELECT テーブル3.社員ID, Null AS 顧客ID, テーブル3.得意先ID, Null AS 顧客氏名, テーブル5.得意先
FROM (テーブル1 INNER JOIN テーブル3 ON テーブル1.社員ID = テーブル3.社員ID) INNER JOIN テーブル5 ON テーブル3.得意先ID = テーブル5.得意先ID;
このクエリ1を開くと一人の社員に関する顧客テーブルの情報と
得意先テーブルの情報は分離して表示されます。
これでいいのならばここまでですが、社員IDでまとめる必要
がある場合は、このクエリのデータの性質上テーブルにして
並び替える必要があります。
(2)
このクエリ1を基に選択クエリを作ります。
SELECT クエリ1.社員ID, クエリ1.顧客ID, クエリ1.得意先ID, クエリ1.顧客氏名, クエリ1.得意先
FROM クエリ1;
(3)
このクエリをテーブル作成クエリに変更して
出来たテーブルを社員ID、顧客ID、得意先ID
についてまとめて並び替えれば必要なデータ
がでてきます。
このようなところですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessについて 2 2022/05/31 16:58
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
フォームの計算がテーブルに反...
-
ACCESS;フォーマットの...
-
アクセスで消し込みがしたい
-
Accessでvlookupみたいなことは...
-
ツリー構造をRDBで表現するには?
-
Accessの追加クエリで既存のテ...
-
ACCESSで同じテーブルに...
-
access テーブル内のレコード...
-
Accessクエリでの、LIKE条件
-
3つの表を1つに縦に連結する
-
時間の足し算
-
翌営業日までの日数をSQLで求め...
-
テーブル作成クエリで主キーを設定
-
アクセスのデータをエクセルに...
-
アクセスのテーブルをくっつけ...
-
SQL構文について教えてください
-
Accessでテーブルにパスワード...
-
MS Access からメールを送るには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessでvlookupみたいなことは...
-
Accessでテーブルからテーブル...
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
access テーブル内のレコード...
-
3つの表を1つに縦に連結する
-
SQLで日付を条件に削除したい
-
Accessの追加クエリで既存のテ...
-
SQLで条件指定結合をしたいがNU...
-
デザインビューで、連結式 を...
-
ツリー構造をRDBで表現するには?
-
ACCESSで指定されたテーブルか...
-
リンクテーブルを CopyObject ...
-
2つのテーブルを比較して一致し...
-
時間の足し算
-
ODBCで接続するとDBに変更/追加...
-
パススルークエリをテーブル作...
-
INSERT時にデータ登録とmaxの発...
おすすめ情報