访问查询以提取上个月的数据

时间:2016-06-22 12:33:57

标签: sql date ms-access ms-access-2013

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

ID(pk),ReportDate,金额

最新数据是30-50天。例如,今天(2016年6月22日)最新的数据将是5/1/16行,因为6月1日的数据将在7月中旬之前输入。 (ReportDate列中的所有日期均为月中的第1天,即:4/1 / 16,5 / 1/16等。)

我需要编写一个可以进行6个月回顾的查询,但不包括最新月份的数据。

因此,例如,如果我今天(16/22/16)运行查询,我只会获得与以下几个月对应的行:

12/1/2015
 1/1/2016
 2/1/2016
 3/1/2016
 4/1/2016

应排除5/1/16的数据,因为这是最近一个月。

我可以通过将ReportDate的条件(在QBE中)设置为>=DateAdd("m",-6,Date())来提取前6个月的数据,但我似乎无法弄清楚如何排除最近一个月。

1 个答案:

答案 0 :(得分:2)

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

SELECT Max(ReportDate) AS MaxOfReportDate
FROM Table1;

如果这是您要排除的月份,请将该查询用作要交叉连接回表的子查询。然后,您可以使用WHERE条款,其BETWEEN条件的终点由基于DateAdd()的{​​{1}}表达式确定:

MaxOfReportDate