
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ランキング
-
サブクエリの書き方
-
Accessの実行時エラーについて
-
SQL文で、合計が0のレコードを...
-
各部署、各チーム、個人ごとの...
-
EXISTSを使ったDELETE文
-
AS400にてサブファイルレコード...
-
差し込み後、元データを変更し...
-
エクセルの関数について教えて...
-
列番号による項目の取得について
-
noの後の語
-
UWSCでMOUSEORG関数が上手く処...
-
SQLで特定の項目の重複のみを排...
-
フィルターかけた後、重複を除...
-
誰か教えてください
-
SQL Left Join で重複を排除す...
-
マイクラPC版のコマンドで効率...
-
イェイイェイイェイ イェイイェ...
-
for whichの使い方
-
次の並び替え問題を教えてくだ...
-
updateを1行ずつ実行したい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
SQL文で、合計が0のレコードを...
-
ACCESS ツリービューの作り方
-
ACCESS 商品毎の最新の単価を設...
-
Accessの実行時エラーについて
-
日付により変動する「単価」を...
-
Excel VBA ADODB
-
前月の取得について
-
テーブルの結合の仕方 MSAccess...
-
各部署、各チーム、個人ごとの...
-
アクセス フィールド名に変数...
-
【SQL】あるマスタのレコードに...
-
テーブルの正規化について
-
Excel/Access☆小売の顧客管理・...
-
UPDATE
-
ACCESSでクエリ作成時複数のフ...
-
アクセス★非課税、課税の合計金...
-
Access2003 vbaでの正規化
-
AS400にてサブファイルレコード...
-
Access サブフォームについて
おすすめ情報