【发布时间】:2016-03-21 00:28:31
【问题描述】:
我正在尝试比较 MS Access 2010 中的两个表,并从一个表 (tmp_import_table) 中选择第二个表 (referrals) 中不存在的记录。这适用于以下查询:
SELECT tmp_import_table.F2, tmp_import_table.F12, tmp_import_table.F13, tmp_import_table.RefDate
FROM tmp_import_table LEFT JOIN referrals ON tmp_import_table.[F2] = referrals.[ext_referral_no]
WHERE (((referrals.ext_referral_no) Is Null));
并产生以下数据集:
但是,我现在需要在查询中的 WHERE 子句中添加第二个条件,并且只选择在某个日期之后发生的记录,这些记录存储在referrals.referral_date(日期/时间字段)中 我写了以下查询:
SELECT tmp_import_table.F2, tmp_import_table.F12, tmp_import_table.F13, tmp_import_table.RefDate
FROM tmp_import_table LEFT JOIN referrals ON tmp_import_table.[F2] = referrals.[ext_referral_no]
WHERE (((referrals.ext_referral_no) Is Null) AND ((referrals.referral_date)>#9/10/2014#));
但查询总是以空数据集结束!我已经尝试了它的各种排列,但总是得到相同的空结果!此外,我还尝试过咒骂、用头撞墙和喝酒,但这些似乎都没有奏效……
谁能发现我的查询有明显的问题?
感谢收看!
Seb
【问题讨论】:
-
您是否尝试过将日期设置为美国格式?
#10/9/2014# -
@DarrenBartrup-Cook,
9/10/2014和10/9/2014在格式方面有什么区别? -
@GiorgiNakeuri - 在 SQL 将英国日期格式读取为美国之前,我遇到了问题 - 所以 10 月 9 日和 9 月 10 日。不是这种情况,因为您的解决方案解决了问题,但我建议 OP 检查他的日期。在示例数据库中,
SELECT * FROM tbl_Reporting WHERE Date_Time >=#12/05/2015# ORDER BY Date_Time ASC返回 12 月 5 日作为最早日期(SQL 要求 5 月 12 日),SELECT * FROM tbl_Reporting WHERE Date_Time >=#05/12/2015# ORDER BY Date_Time ASC返回 9 月 9 日作为我表中最早的日期(SQL 要求 12 月 5 日)跨度>
标签: sql ms-access-2010