【问题标题】:Microsoft Access Query - Can't select records when adding a date to queryMicrosoft Access 查询 - 添加要查询的日期时无法选择记录
【发布时间】: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/201410/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


【解决方案1】:

您正在执行left join 并在第一个查询中选择tmp_import_table.RefDate。但是在第二个可能是NULLs 中通过referrals.referral_date 过滤。改为:

....AND ((tmp_import_table.referral_date)>#9/10/2014#));

【讨论】:

  • 我就知道会很简单!固定的!谢谢! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
  • 2022-01-10
  • 2012-09-13
  • 1970-01-01
相关资源
最近更新 更多