MS Access SQL子查询中的数据类型不匹配

时间:2014-04-15 13:52:20

标签: tsql ms-access ms-access-2007

好的,此查询不会运行并返回数据类型不匹配错误。在我尝试在WHERE子句中的子查询中连接两个表之前,此错误才开始。

我尝试加入的两个表是在主查询中加入的两个表。每个表都包含一列CRD Number。在一个表中,它以文本形式存储,在另一个表中,它以数字形式存储。这就是我使用CStr()函数将数值列转换为文本列的原因。这对于主要查询非常有效(感谢Stack Overflow!)但是当我尝试在子查询中进行相同的完全连接时,我收到了数据类型不匹配错误。

这是一张图片,带有一个小箭头和一个文本框,突出显示我(99%肯定)认为导致问题的区域。同样,只有在我尝试在子查询中连接这两个表时才会出现问题。如果删除了联接,则将运行查询。 (虽然子查询不会返回正确的结果,因此使我的主要查询无用)

My issue

*我的所有Access数据库都设置为接受标准T-SQL语法,因此我也将其标记为T-SQL

1 个答案:

答案 0 :(得分:0)

我认为差异可能是在主要查询中排除了Crd Number为空的情况,但在子查询中则不是。我没有安装Access以便能够测试,但我敢打赌,如果你添加到子查询where子句,它将起作用。

sp.CRD_NUMBER is not null and dtp.CRD_NUMBER is not null

我怀疑函数CStr()遇到了null值的问题,但是我再次测试它是否会产生影响。