Sql Access查询以提取上个月的数据

Sql Access查询以提取上个月的数据,sql,date,ms-access,ms-access-2013,Sql,Date,Ms Access,Ms Access 2013,我在Access 2013 Table1中有一个表,其中包含以下列: ID主键、报告日期、金额 最新数据为30-50天。例如,今天的2016年6月22日,最新的数据将是5/1/16行,因为6/1/16数据要到7月中旬才能输入。ReportDate列中的所有日期都是该月的第一天,即:4/1/16、5/1/16等 我需要编写一个查询来进行6个月的回溯,但不包括当前月份的最新数据 因此,例如,如果我今天6/22/16运行查询,我只会得到与以下月份对应的行: 12/1/2015 1/1/2016 2

我在Access 2013 Table1中有一个表,其中包含以下列:

ID主键、报告日期、金额

最新数据为30-50天。例如,今天的2016年6月22日,最新的数据将是5/1/16行,因为6/1/16数据要到7月中旬才能输入。ReportDate列中的所有日期都是该月的第一天,即:4/1/16、5/1/16等

我需要编写一个查询来进行6个月的回溯,但不包括当前月份的最新数据

因此,例如,如果我今天6/22/16运行查询,我只会得到与以下月份对应的行:

12/1/2015
 1/1/2016
 2/1/2016
 3/1/2016
 4/1/2016
应排除2016年5月1日的数据,因为这是最近的一个月


通过在QBE中将ReportDate的条件设置为>=DateAddm,-6,Date,我可以提取前6个月的数据,但我似乎不知道如何排除最近一个月的数据

这将为您提供表格中最近一个月的开始日期:

选择MaxReportDate作为MaxOfReportDate 来自表1; 如果要排除该月份,请将该查询用作子查询,并将其交叉连接回表。然后,可以使用WHERE子句和BEVER条件,其端点由基于MaxOfReportDate的DateAdd表达式确定:

选择t.ID、t.ReportDate、t.Amount 从…起 表1作为t, 选择MaxReportDate作为MaxOfReportDate 来自表1 作为子 哪里 t、 ReportDate介于DateAdd'm',-6,sub.MaxOfReportDate之间 和DateAdd'm',-1,sub.MaxOfReportDate;