
Access2000でクエリを作成します。
SQLで
SELECT お支払.ID_支払, お支払.N_伝票No, お支払.N_支払金額, お支払.N_支払区分コード
FROM 伝票 LEFT JOIN (支払区分マスター INNER JOIN お支払 ON 支払区分マスター.N_支払区分コード = お支払.N_支払区分コード) ON 伝票.N_伝票No = お支払.N_伝票No;
とすると あいまいな外部結合が含まれている・・というエラーがでてしまいます。どうしたらいいでしょうか。
伝票は全て表示して、その中のお支払には、区分コードを割り当てたいだけなのですが。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
LeftJoinの結合先にInnerJoinがあると、そのエラーが生じますので、
そのInnerJoinをLeftJoinに変えます。
(クエリをデザインビューで表示させた場合でいうと、「○→□-△」でエラー。
「○-□→△」や「○→□→△」(=下の修正版)なら、エラーになりません)
SELECT お支払.ID, お支払.N_伝票No, お支払.N_支払金額, お支払.N_支払区分コード
FROM 伝票 LEFT JOIN (お支払 LEFT JOIN 支払区分マスター ON お支払.N_支払区分コード = 支払区分マスター.N_支払区分コード) ON 伝票.N_伝票No = お支払.N_伝票No;
とりあえず、できました。ありがとうございます。
いろいろ調べてたのですが、こんなあっさりできてとても助かりました。
そして、できたらこのような情報がどこをみればわかるのか教えてもらえないでしょうか。
No.2
- 回答日時:
No.1です。
> このような情報がどこをみればわかるのか
すみません、私もトライ&エラーで憶えたもので・・・(汗)
なので、発生したエラーに対してどう対処したら、という一覧のような
ものは知らないのですが、VBAなどのコードを調べる際に使わせて
もらっているサイトを、参考までに挙げておきます;
(実際には、こちらのトップから入るというより、googleなどで検索した
結果からお邪魔しているのですが)
http://www.tsware.jp/
http://www.accessclub.jp/
なお、前回の回答をする際に失念していたのですが、クエリを2つに
分割してやれば、InnerJoinのままでも対応可能でしたので、
以下に記しておきます。
お支払Q;
SELECT お支払.ID, お支払.N_伝票No, お支払.N_支払金額, お支払.N_支払区分コード
FROM お支払 INNER JOIN 支払区分マスター ON お支払.N_支払区分コード = 支払区分マスター.N_支払区分コード;
上の「お支払Q」クエリを使用し、前回回答と(ほぼ)同じ結果を返すSQL
(「お支払」にあって「支払区分マスター」にないデータがある場合、
そのデータ分は結果が異なります);
SELECT お支払Q.ID, お支払Q.N_伝票No, お支払Q.N_支払金額, お支払Q.N_支払区分コード
FROM 伝票 LEFT JOIN お支払Q ON 伝票.N_伝票No = お支払Q.N_伝票No;
回答ありがとうございます。
クエリを分割してできる事は、わかっていたのですが、
SQL自体の納得がいかなかったことと、
VBAのソースでSQLを使うときに困る事も(??)あると思い
今後のことを考えどうしても連結してやりたかったのです。
分割の場合はINNER JOIN なので 先の例の LEFT JOIN との違い
があることはわかります。
今回の場合は、最初INNER JOIN でやってましたが、むしろ
LEFT JOIN のほうがこちらの意図にも、あってました。
● LeftJoinの結合先にInnerJoinがあると、そのエラーが生じる
とのご指摘のことで、ネットでいろいろ探したのですが、
自分が見つけられたのは、
http://office.microsoft.com/ja-jp/access/HP01032 …
http://office.microsoft.com/ja-jp/access/HP01032 …
の
"INNER JOIN を LEFT JOIN または RIGHT JOIN の中にネストすることはできません" とのわずかこの文章だけです。(特に理由も書いてありません)
よく考えば、わかること??なのかも??しれませんが。
トライ&エラーで得た、本当に貴重な情報を提供していただいて
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
テキストボックスのvalueとtextの違い
Visual Basic(VBA)
-
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
-
-
4
ACCESSのクエリで抽出条件「または」は9個までしかかけませんよね…
Access(アクセス)
-
5
Accessクエリでの、LIKE条件
その他(データベース)
-
6
Access2007でSQLの複数列副問い合わせについて
その他(データベース)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
テーブルでメモ型になっているのにクエリで結合ができません。
その他(データベース)
-
9
アクセス:クエリの結合とリレーションシップの違いについて
Access(アクセス)
-
10
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
11
アクセスのフォームのビューが表示されないのですが、
その他(データベース)
-
12
ACCESSのクエリで集計で、先頭・最後とは?
その他(データベース)
-
13
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
14
デザインビューで、連結式 を表示できません について
その他(データベース)
-
15
Access2010 「演算子がありません」エラー
その他(データベース)
-
16
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
17
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
18
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
19
入力した値をコンボボックスにすぐに反映させる方法
Excel(エクセル)
-
20
アクセスで前年対比を出す方法を教えてください。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
orace SQL文のエラー(ORA-0092...
-
LEFT JOIN あいまいな外部結合
-
Word差し込み印刷 数式について
-
商品番号を入力すると、商品名...
-
updateでグループ化
-
エクセルでリピート率
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
差し込み後、元データを変更し...
-
Outlook 送受信エラー
-
エクセルのxans.について
-
ソフトバンクの無料着うたのお...
-
特定の文字列で列を区切るには?
-
no appleとno applesの違いは?
-
SQLで特定の項目の重複のみを排...
-
フィルターかけた後、重複を除...
-
php+mysqlで複数選択削除について
-
外部参照してるキーを主キーに...
-
エクセルに見えない文字(JISX0...
-
カーソル0件の時にエラーを発生...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
updateでグループ化
-
商品番号を入力すると、商品名...
-
2つのテーブルを結合して最大値...
-
LEFT JOIN あいまいな外部結合
-
orace SQL文のエラー(ORA-0092...
-
各伝票に対して明細を1行目だけ...
-
特定条件での連番の振り方を教...
-
Accessのフォームで思った順番...
-
Word差し込み印刷 数式について
-
エクセルでリピート率
-
accessクエリの結果の縦横表示...
-
突合せによるレコード結合につ...
-
IDの欠番
-
ACCESS フォーム入力で...
-
コンピュータ
-
Accessレポート 複数条件での集計
-
同一テーブルのデータを検索条...
-
accessフォームのボタン→レポー...
-
SQL文:ある状態の明細のみを抽...
-
アクセスのフォームで連動した...
おすすめ情報