掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ももたろう (ID:111092)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
SQLサーバー2000で軽く確認しただけだと問題なかったんですが、 Accessでは内部結合式のエラーとなりました。原因などについて 全て調べる時間がありませんのでエラーの見つけ方を載せます。 ・以前ご紹介したSQL文で『演算子がありません』というエラーを 確認いたしました(Access2002(SP2)) ・まずSQL文が複雑な時には分解します。特に意図したテーブルが 取れてきてるかを確認しなければなりません。 ・最初に実行したクエリ SELECT * FROM MASTER_TANTO INNER JOIN TBLKAIIN ON MASTER_TANTO.担当者コード = '1234' 実行時エラーメッセージ『結合式がサポートされていません』 Accessヘルプより抜粋『SQL ステートメントに複数の結合があり、 その実行順序によってクエリの結果が異なる可能性があります。 最初の結合を実行するクエリを別に作成し、そのクエリを SQL ステートメントに追加してください。 JOIN 操作の ON ステートメントが不完全であるか、または指定 したテーブルが多すぎます。WHERE 句で ON 式を使用してください。』 ・色々やってうまくテーブルを生成できるクエリ SELECT * FROM MASTER_TANTO INNER JOIN TBLKAIIN ON MASTER_TANTO.担当者コード = TBLKAIIN.カード番号 …一番簡単で解決しそうな方法は[担当者コード]と[カード番号]を 同じにすること。 違う場合は[担当者コード]と[カード番号]の別テーブル(NUMBERS)を 作って SELECT * FROM TBLKAIIN INNER JOIN NUMBERS ON TBLKAIIN.カード番号 = NUMBERS.カード番号 と取ってきたものを更に内部結合する…。 つまり SELECT * FROM (SELECT * FROM TBLKAIIN INNER JOIN NUMBERS ON NUMBERS.カード番号 = TBLKAIIN.カード番号) as t INNER JOIN MASTER_TANTO ON t.担当者コード = MASTER_TANTO.担当者コード …テーブルの構成変えて良いんならMASTER_TANTO.カード番号を作った方が 見た目には簡単ですが…この辺りでもう少しご検討ください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.