使用 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中文網其他相關文章!