首頁 >資料庫 >mysql教程 >如何使用 SQL 計算 Access 資料庫中連續記錄之間的日期差異?

如何使用 SQL 計算 Access 資料庫中連續記錄之間的日期差異?

Barbara Streisand
Barbara Streisand原創
2025-01-08 08:17:411002瀏覽

How to Calculate Date Differences Between Consecutive Records in an Access Database Using SQL?

使用 SQL 計算 Access 資料庫中連續記錄之間的日期差異

分析時態資料通常涉及確定連續條目之間經過的時間。本文示範如何使用 SQL 計算 Access 資料庫中共用相同帳號的連續記錄之間的日期差異。

方法一:

以下 SQL 查詢計算與帳號 1001 相關的連續記錄的日期差異:

<code class="language-sql">SELECT  T1.ID, 
        T1.AccountNumber, 
        T1.Date, 
        MIN(T2.Date) AS NextDate, 
        DATEDIFF("D", T1.Date, MIN(T2.Date)) AS DaysDifference
FROM    YourTable AS T1
LEFT JOIN YourTable AS T2
    ON T1.AccountNumber = T2.AccountNumber
    AND T2.Date > T1.Date
GROUP BY T1.ID, T1.AccountNumber, T1.Date;</code>

此方法利用 LEFT JOIN 來識別每個記錄的後續日期,然後使用 DATEDIFF 函數來計算天數差異。

方法二:

或者,此查詢會得到相同的結果:

<code class="language-sql">SELECT  ID,
        AccountNumber,
        Date,
        NextDate,
        DATEDIFF("D", Date, NextDate) AS DaysDifference
FROM    (   SELECT  ID, 
                    AccountNumber,
                    Date,
                    (   SELECT  MIN(Date) 
                        FROM    YourTable AS T2
                        WHERE   T2.AccountNumber = T1.AccountNumber
                        AND     T2.Date > T1.Date
                    ) AS NextDate
            FROM    YourTable AS T1
        ) AS T;</code>

此方法在計算日期差之前使用子查詢來尋找每筆記錄的下一個日期。

範例輸出(帳號 1001):

兩個查詢都會產生類似的結果集:

AccountNumber Date DaysDifference
1001 10/9/2011 2
1001 12/9/2011 8
1001 20/9/2011 NULL

NULL值表示最後一項沒有後續記錄。 請記得將 "YourTable" 替換為您的表的實際名稱。

以上是如何使用 SQL 計算 Access 資料庫中連續記錄之間的日期差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn