首頁 > 資料庫 > mysql教程 > 如何計算 Microsoft Access 中連續行之間的日期差異?

如何計算 Microsoft Access 中連續行之間的日期差異?

Mary-Kate Olsen
發布: 2025-01-08 08:21:40
原創
493 人瀏覽過

How to Calculate the Date Difference Between Consecutive Rows in Microsoft Access?

確定 Microsoft Access 中帳戶交易之間經過的時間

許多資料集使用連續行追蹤帳戶交易。 分析這些交易之間的時間通常需要計算日期差異。使用 Microsoft Access 中的 SQL 查詢可以輕鬆完成此操作。 讓我們來探索實現此目的的兩種方法:

方法一:使用 MIN() 和 DATEDIFF() 自連接

此方法使用自聯接將同一帳戶的每一行與後續行進行比較。

<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 T1
LEFT JOIN YourTable T2
    ON T1.AccountNumber = T2.AccountNumber
    AND T2.Date > T1.Date
GROUP BY T1.ID, T1.AccountNumber, T1.Date;</code>
登入後複製

此查詢將 YourTable(別名為 T1T2)與其自身連接起來。 LEFT JOIN 確保包含所有交易,即使它們沒有後續交易。 MIN(T2.Date) 找出最早的後續交易日期,DATEDIFF("D", T1.Date, MIN(T2.Date)) 計算天數差異。

方法二:下一個交易日期的巢狀子查詢

此替代方案使用巢狀子查詢來有效地確定每個帳戶的下一個交易日期。

<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 T2
                        WHERE   T2.AccountNumber = T1.AccountNumber
                        AND     T2.Date > T1.Date
                    ) AS NextDate
            FROM    YourTable T1
        ) AS T</code>
登入後複製

內部查詢找出每行的NextDate。然後,外部查詢使用 DATEDIFF() 計算日差。

兩種方法都會產生帳號、交易日期、下一個交易日期、計算出的日期差。 最佳選擇取決於您的特定數據量和效能需求。 對於非常大的資料集,自連接可能效率較低,而嵌套子查詢有時可能更具可讀性。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板