[英]Access query to pull previous month's data
我在Access 2013(Table1)中有一個表,其中包含以下列:
ID(pk),ReportDate,金額
最新數據為30-50天。 例如,今天(6/22/16),最新數據將是5/1/16行,因為直到7月中旬才輸入6/1/16數據。 (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
應該排除16年5月1日的數據,因為它是最近一個月。
我可以通過將ReportDate的條件(在QBE中)設置為>=DateAdd("m",-6,Date())
來獲取前6個月的數據,但似乎無法弄清楚如何排除最近一個月。
這應該為您提供表中最近一個月的開始日期:
SELECT Max(ReportDate) AS MaxOfReportDate
FROM Table1;
如果那是您要排除的月份,則將該查詢用作子查詢,將其交叉聯接回表。 然后,可以使用帶有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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.