【发布时间】:2014-07-31 10:26:21
【问题描述】:
我正在 MS Access 上运行 SQL 查询。
查询如下所示:
TRANSFORM MIN(X_VALUE*MULTIPLE & ' ' & Y_VALUE)
SELECT A.ID
FROM ((MY_TABLE_A A
INNER JOIN MY_TABLE_B B ON B.ID = A.ID)
INNER JOIN MY_TABLE_C C ON C.FOO1_ID = A.FOO1_ID)
LEFT JOIN MY_TABLE_D D ON A.FOO2_ID = D.FOO2_ID
WHERE A.NUM ='FOO'
AND A.FOO_ID0
AND FOO3=1
GROUP BY A.ID PIVOT X_NAME IN('BLAH1', 'BLAH2')
当对本地 MDB 文件运行时,它可以工作。 当针对 Linked MDB(表链接到远程 Oracle DB)运行它时,我得到了
ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] Microsoft Access 数据库引擎无法执行 SQL 语句,因为它 包含具有无效数据类型的字段。
我用谷歌搜索了它,找不到任何有用的东西。
知道我能做什么吗? 谢谢。
【问题讨论】:
-
您可以编辑您的帖子以显示您用于执行此查询的连接字符串吗?
-
两个 MDB 的连接字符串是相同的 - 我只是在文件(链接和未链接)之间切换。你认为它相关吗?
-
将链接表的数据类型与本地数据类型进行比较可能会提供一些线索。 A.NUM的数据类型是什么?
-
@rontornambe - 谢谢!但我试图删除所有 WHERE 条件,它给出了同样的错误。
-
让我知道 Oracle 中这 3 个字段的数据类型以及 MS Access X_VALUE、MULTIPLE、Y_VALUE 中的数据类型。 MS Access 表和 Oracle 表的隐式数据类型转换或数据本身可能不同。您可以对链接表运行以下查询吗,如果连接的字段数据类型有任何问题,我们将理解 SELECT A.ID FROM ((MY_TABLE_A A INNER JOIN MY_TABLE_B B ON B.ID = A.ID) INNER JOIN MY_TABLE_C C ON C.FOO1_ID =A.FOO1_ID) LEFT JOIN MY_TABLE_D D ON A.FOO2_ID = D.FOO2_ID GROUP BY A.ID PIVOT X_NAME IN('BLAH1', 'BLAH2')
标签: ms-access pivot-table linked-tables