みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESSのクエリで同じSQL文だが結果が異なる

ACCESS2003にて
選択クエリAをSQLビューで開きSQL文をコピー、
新規作成したクエリBのSQLビューに貼り付けて実行したところ、
AとBで結果の件数が異なりました。

そのままBを保存して終了。
BをSQLビューで開き、
SQL文の末尾の;を削除して実行すると、
Aと同じ件数の結果になりました。

再度Bを保存して終了し、
BをSQLビューで開き、
SQL文の末尾の;を削除して実行すると、
Aと異なる件数(元の結果)になりました。

何が原因なのでしょうか。
SQL文の内容は、サブクエリを含んでいて、サブクエリのFROMは
SQLSERVERのリンクテーブルです。

よろしくお願いします。

投稿日時 - 2007-11-14 18:58:58

QNo.3517982

すぐに回答ほしいです

質問者が選んだベストアンサー

文末のセミコロンの有無でSQLの結果が変わるというのは聞いたことがないなあ…
ちょっと遠回りだけど、2つの文で結果がどう異なるかをもう少し調べた方がよさそうです。
件数が異なる、ということはどちらかのSQLによって、本来抽出すべきデータが抽出されない、
または余分なデータが抽出されてしまう、ということが起きているはずです。
なので、両者の結果をテーブルにでも書き出して一方にしか含まれないデータを確認し、
そこから可能性を推測して、できれば検証(同じようなデータを追加して予想通りになるか)
といった手順を踏んでいくのが、遠いようで実は解決に近いかもしれません。

投稿日時 - 2007-11-17 00:56:00

お礼

お礼が遅くなり申し訳ありません。
neko_nokoさん回答ありがとうございます。

書出してみました。
セミコロンを消して保存するごとに件数が変わるのですが、
多い方が正しく抽出していることがわかりました。

しかし少ない方がなぜ正しく抽出しないのかはわかりませんでした。
(SQL文自体は多いときも少ないときも同じなのです)

現在、なにを手がかりにしてよいのかもわからない状態です。

投稿日時 - 2007-11-21 16:06:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問