连续行之间的日期差

我有一个具有以下结构的表


ID     Account Number     Date

1      1001               10/9/2011 (dd/mm/yyyy)

2      2001               1/9/2011 (dd/mm/yyyy)

3      2001               3/9/2011 (dd/mm/yyyy)

4      1001               12/9/2011 (dd/mm/yyyy)

5      3001               18/9/2011 (dd/mm/yyyy)

6      1001               20/9/2011 (dd/mm/yyyy)

基本上我想做的是有一个访问查询,该查询计算连续记录但对于相同帐号的日期差预期结果将是!!


1001      10/9/2011 - 12/9/2011     2 days

1001      12/9/2011 - 20/9/2011     8 days

1001      20/9/2011                 NA

基本上我想做的是有一个访问查询,该查询计算连续记录但对于相同帐号的日期差,在上面的示例中为1001。(日期不必在结果中显示)


我使用Access 2003。


慕斯709654
浏览 584回答 3
3回答

泛舟湖上清波郎朗

您还可以使用LAG分析功能来获得所需结果,如下所示:假设下面是您的输入表:id  account_number  account_date1     1001          9/10/20112     2001          9/1/20113     2001          9/3/20114     1001          9/12/20115     3001          9/18/20116     1001          9/20/2011select id,account_number,account_date,datediff(day,lag(account_date,1) over (partition by account_number order by account_date asc),account_date)as day_diffrencefrom yourtable;这是您的输出:id  account_number  account_date    day_diffrence1     1001           9/10/2011    NULL4     1001           9/12/2011    26     1001           9/20/2011    82     2001           9/1/2011     NULL3     2001           9/3/2011     25     3001           9/18/2011    NULL
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server