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