確定 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
(別名為 T1
和 T2
)與其自身連接起來。 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中文網其他相關文章!