簡體   English   中英

訪問查詢以提取上個月的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM