
ACCESSでクエリを作成しています。テーブルは”売上明細”と”社員マスタ”があります。売上明細には”担当者CD”と”加工者CD”というフィールドがあって、それぞれのフィールドが、同じ社員マスタの”社員CD”をキーに”社員名”を抽出したいのですが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください」とメッセージが出ます。どこにどのように設定すればいいのでしょうか?優先順位は特にありませんが、最初に設定されている担当者CDを第一次結合とする場合どうすればいいのでしょうか?この第一次・第二次はどのような意味があるのでしょうか?まだVBAは手付かずで、初心者です!これから学習しようとしているところです。よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
ひとつのテーブルの異なるフィールドが同じテーブルを参照しているわけですね
こういう場合はひとつのテーブルを2つのフィールドに結合するのではなく
同じテーブルを別の名前で結合します
クエリデザインビューでの操作だと、社員マスタを2回クエリデザインビューに取り込み
(2つ目は異なる名前で取り込まれます)
担当者と、加工者に別々に結合します
回答ありがとうございます!なんだか回答を頂いて”目からウロコ”状態でした。とても簡単で的確な回答ですぐ解決いたしました!本当にありがとうございます!最初エラーメッセージを読んだときはどうなることかと思いましたが、回答を見てすぐわかりました!なるほど・・・でした!本当に感謝です!
No.1
- 回答日時:
<社員マスター>
社員CD__名前
101_____鈴木 一郎
102_____中村 主水
<売上明細>
ID___伝票番号___担当者CD___加工者CD
1____1001_______101________101
2____1002_______102________102
<売上明細_クエリ>
ID___伝票番号___社員マスター_担当者.名前___社員マスター_加工者.名前
1____1001_______鈴木 一郎_________________鈴木 一郎
2____1002_______中村 主水__________________中村 主水
SELECT 売上明細.ID, 売上明細.伝票番号, 社員マスター_担当者.名前, 社員マスター_加工者.名前
FROM (社員マスター AS 社員マスター_担当者 RIGHT JOIN 売上明細 ON 社員マスター_担当者.社員CD=売上明細.担当者CD)
LEFT JOIN 社員マスター AS 社員マスター_加工者 ON 売上明細.加工者CD=社員マスター_加工者.社員CD;
このような<売上明細_クエリ>を作成しようとされているのだと推察します。
<SQL ビュー>を見れば判りますが、例では社員マスターを[担当者.名前参照用]と[加工者.名前参照用]の2つ用意しています。
質問者は、1つのの社員マスターから[担当者.名前]と[加工者.名前]を参照しようとしているのでしょう。
その場合、次のような場合は101と102とに結び付くという曖昧さを生じます。
これを避けるには社員マスターを一つだけではなく二つ配置して別個に結合させます。
<売上明細>
ID___伝票番号___担当者CD___加工者CD
1____1001_______101________102
多分、こういうことだと・・・。
とても詳細に説明いただいてありがとうございます!マスタをそれぞれに配置して解決しました。しかし最初私は社員マスターのテーブル自身を2つ作成するのかと勘違いしてしまいました・・・同じ内容のテーブルを作成するのはちょっと・・・と思ってしまいました。私の早とちりでした。丁寧に記載していただいているのに・・・出来の悪い質問者ですみません!これに懲りず、またよろしくお願いいたします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
ACCESS 商品毎の最新の単価を設...
-
クロス集計クエリで空レコード...
-
アクセスにて月末日付を取得し...
-
レコード更新時にデータ値を自...
-
SQL文で、合計が0のレコードを...
-
ACCESS ツリービューの作り方
-
AccessVBA データのエクスポート
-
SQLで特定の項目の重複のみを排...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
JavaScriptの定数名が取り消し...
-
外部参照してるキーを主キーに...
-
カーソル0件の時にエラーを発生...
-
日本語のエイリアスは" "で囲...
-
スペースを検索したい
-
フィルターかけた後、重複を除...
-
あいまい検索で英文字の全角半...
-
UPDATE文のWHERE条件に他のテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
SQL文で、合計が0のレコードを...
-
Accessの実行時エラーについて
-
日付により変動する「単価」を...
-
ACCESS 商品毎の最新の単価を設...
-
ACCESS ツリービューの作り方
-
ACCESSでクエリ作成時複数のフ...
-
アクセス フィールド名に変数...
-
異なるデータベース間のテーブ...
-
前月の取得について
-
最大値を含むレコードの抽出
-
AS400にてサブファイルレコード...
-
オートナンバーでの質問
-
PL/SQLの質問
-
ACCESSでDLookUpすると、不正な...
-
はじめまして。スーパーbeginne...
-
Access2013で商品に複数の単価...
-
Access 小計について
-
ACCESSのマスタの変更について
-
テーブル名の トラン マスタ...
おすすめ情報