MS Access查询在搜索最后x个月的数据时返回重复行



我需要使用查询从表中获取最后13个月的数据。该表的格式为:数据表。其中,对于几年中的每个月,都会将一系列车道作为精度和误差值。Audit_Date列是日期/时间数据类型,设置为显示mm/yyyy。

查询似乎很简单,拉过去13个月的特定车道。

SELECT [tbl_AC-02_Audit].Audit_Date, [tbl_AC-02_Audit].Lane, [tbl_AC-02_Audit].Accuracy, [tbl_AC-02_Audit].Errors, tbl_Date_Metric.[Metric Value]
FROM [tbl_AC-02_Audit] 
INNER JOIN tbl_Date_Metric ON [tbl_AC-02_Audit].Audit_Date = tbl_Date_Metric.[Audit Date]
WHERE ((([tbl_AC-02_Audit].Audit_Date)>DateAdd("m",-14,Date())) AND (([tbl_AC-02_Audit].Lane)="2N"));

或者,如果在查询UI中查看:

查询UI

该查询在过去10个月内运行良好。但当我回顾11、12或13个月时,我总是在查询结果中得到一个重复的数据行,如下图所示:

查询结果

注意:基本数据表不包括任何重复的数据行-所有行都是唯一的。

我已经尝试了几种日期回溯代码的变体,包括

DateAdd("m",-14,Date(((,如图所示,以及日期序列(年(无(,月(无(-14,日(无((,

在另一篇关于日期回顾查询的文章中建议。DataAdd和DateSerial这两个表单都可以追溯到10个月,但在11个月时重复一行。

最终,查询会将数据提供给表单上的图表。但目前,查询不会返回正确的数据。我缺少什么?为什么当回顾时间超过10个月时,查询会重复一行?

Doah!基表(审计(没有任何重复的条目,如原帖所述。然而,联接表(Date_Metric(确实有两个5月份的条目。我确信我已经检查了这两个表,但显然我错过了。从联接表中删除重复条目产生了所需的结果。感谢大家的帮助。

因此,我建议您使用一个select语句来提示输入两个日期参数。

****E.g选择col1、col2、col3

表A中的
  • 其中dateparameter1和dateparameter2之间的日期字段****

您可以在查询设计视图的条件部分下输入参数

这将允许您轻松输入任何日期范围,如果您仍然得到重复的输出,请确保基础记录是重复的。

最新更新