【发布时间】:2014-07-02 18:42:20
【问题描述】:
在左连接的右侧,我无法在日期字段上设置 Where 子句。如果更改为 Inner Join,或者我在非日期字段上设置 Where ,它会完美运行。
这会失败并出现“条件表达式中的数据类型不匹配”错误:
SELECT tblFuture.ContractNo
FROM tblFuture LEFT JOIN qryActualDeliveriesDump_summarized
ON tblFuture.ContractNo = qryActualDeliveriesDump_summarized.ContractNo
WHERE qryActualDeliveriesDump_summarized.Dt=#2/1/2014#;
这很好用:
SELECT tblFuture.ContractNo
FROM tblFuture INNER JOIN qryActualDeliveriesDump_summarized
ON tblFuture.ContractNo = qryActualDeliveriesDump_summarized.ContractNo
WHERE qryActualDeliveriesDump_summarized.Dt=#2/1/2014#;
同样如此:
SELECT tblFuture.ContractNo
FROM tblFuture LEFT JOIN qryActualDeliveriesDump_summarized
ON tblFuture.ContractNo = qryActualDeliveriesDump_summarized.ContractNo
WHERE qryActualDeliveriesDump_summarized.ContractNo=41012;
字段 ContractNo 是 Long 类型,字段 Dt 来自调用 DateSerial(someyear, somemonth, someday) 的查询。这闻起来像一个访问错误,但谷歌搜索对我来说一无所获。我正在使用 Access 2010 32 位。
【问题讨论】:
-
将条件移至联接。
-
qryActualDeliveriesDump_summarized.Dt 是日期字段吗?
-
孙 W 金:是的。它是从返回 Date 数据类型 (DateSerial) 的函数生成的。