访问查询以提取上个月的数据
Access query to pull previous month's data
我在 Access 2013 (Table1) 中有一个 table,其中包含以下列:
ID (pk)、报告日期、金额
最新数据是 30-50 天前的数据。例如,今天 (6/22/16) 最新数据将是 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 日的数据,因为它是最近一个月。
我可以通过将 ReportDate 的标准(在 QBE 中)设置为 >=DateAdd("m",-6,Date())
来提取前 6 个月的数据,但我似乎无法弄清楚如何排除最近一个月的数据。
这应该会为您提供 table:
最近一个月的开始日期
SELECT Max(ReportDate) AS MaxOfReportDate
FROM Table1;
如果那是您要排除的月份,请将该查询用作您交叉连接回 table 的子查询。然后,您可以使用带有 BETWEEN
条件的 WHERE
子句,其终点由基于 MaxOfReportDate
:
的 DateAdd()
表达式确定
SELECT t.ID, t.ReportDate, t.Amount
FROM
Table1 AS t,
(
SELECT Max(ReportDate) AS MaxOfReportDate
FROM Table1
) AS sub
WHERE
t.ReportDate BETWEEN DateAdd('m', -6, sub.MaxOfReportDate)
AND DateAdd('m', -1, sub.MaxOfReportDate);
我在 Access 2013 (Table1) 中有一个 table,其中包含以下列:
ID (pk)、报告日期、金额
最新数据是 30-50 天前的数据。例如,今天 (6/22/16) 最新数据将是 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 日的数据,因为它是最近一个月。
我可以通过将 ReportDate 的标准(在 QBE 中)设置为 >=DateAdd("m",-6,Date())
来提取前 6 个月的数据,但我似乎无法弄清楚如何排除最近一个月的数据。
这应该会为您提供 table:
最近一个月的开始日期SELECT Max(ReportDate) AS MaxOfReportDate
FROM Table1;
如果那是您要排除的月份,请将该查询用作您交叉连接回 table 的子查询。然后,您可以使用带有 BETWEEN
条件的 WHERE
子句,其终点由基于 MaxOfReportDate
:
DateAdd()
表达式确定
SELECT t.ID, t.ReportDate, t.Amount
FROM
Table1 AS t,
(
SELECT Max(ReportDate) AS MaxOfReportDate
FROM Table1
) AS sub
WHERE
t.ReportDate BETWEEN DateAdd('m', -6, sub.MaxOfReportDate)
AND DateAdd('m', -1, sub.MaxOfReportDate);