• 締切済み

ACCES「抽出条件でデータ型が一致しません」

環境 WindowsXP Access2003 SELECT A.ID, A.NAME, A.DATE FROM ( (SELECT ID, NAME, DATE FROM ・・・) A LEFT JOIN (SELECT ID, NAME, DATE FROM ・・・) B ON A.ID = B.ID ) ORDER BY A.ID こんな感じのSQLを実行すると、 「抽出条件でデータ型が一致しません」 というエラーとなります。 SQL文を以下の様に変更すると、エラーにはなりません。 1.「ORDER BY A.ID」排除 2.ORDER句を「A.ID」以外の「A.NAME」「A.DATE」「B.ID」「B.NAME」「B.DATE」に変更 3.ON句の順番を「ON B.ID = A.ID」に入れ替え(ORDER句は、「A.ID」のまま) なぜ、このようなエラーになるのでしょうか? 特に3が理解不能なのですが、 ON句の順番がORDER句に影響を及ぼすことがあるのでしょうか? 以上、よろしくお願いします。

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

別に新規MDBを作成して、すべてインポートしなおして見たほうが良いかも。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

質問文に出てる部分から想定されるクエリを試してみたら、普通に表示されたので、環境的な問題なのかも。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> (SELECT ID, NAME, DATE FROM ・・・) A > LEFT JOIN > (SELECT ID, NAME, DATE FROM ・・・) B はしょって書いておられますが、Aの元ネタテーブルとBの元ネタテーブルは同じもの? 別テーブルであるなら、それぞれの列[ID]はどのようなデータ型?

g6w3b7segd4v
質問者

補足

手抜きですいません。 手元に環境がないので、正確なSQLは出せないのですが、 AとBは別テーブルです。 IDとNAMEは文字型・DATEは日付型です。 ORDER句の前にWHERE句で、A.DATE > B.DATEの条件があります。