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

締切り済みの質問

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句に影響を及ぼすことがあるのでしょうか?

以上、よろしくお願いします。

投稿日時 - 2013-04-10 20:06:04

QNo.8037002

困ってます

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

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

回答(3)

ANo.3

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

投稿日時 - 2013-04-12 20:23:11

ANo.2

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

投稿日時 - 2013-04-11 22:30:45

ANo.1

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

投稿日時 - 2013-04-10 21:19:11

補足

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

投稿日時 - 2013-04-10 22:13:28

あなたにオススメの質問