SQL计算一个表中两个日期之间的天数

k1f*_*1f1 4 sql t-sql

我有一个表dbo.Trans,其中包含一个名为bd_id(varchar)和transfer_date(Datetime)的ID ,标识符member_idpk trns_id也是顺序的

表中存在bd_idmember_id存在重复.

transfer_date       |bd_id| member_id | trns_id
2008-01-01 00:00:00 | 432 | 111       | 1  
2008-01-03 00:00:00 | 123 | 111       | 2  
2008-01-08 00:00:00 | 128 | 111       | 3  
2008-02-04 00:00:00 | 123 | 432       | 4
.......
Run Code Online (Sandbox Code Playgroud)

对于每个member_id,我想获得日期和每个日期之间的天数 bd_id

EG,成员111使用432来自2008-01-01直到2008-02-01所以回报率应会2
那么下一个会是5

我知道DATEDIFF()函数存在但我不确定当日期在同一个表中时如何获得差异.

任何帮助赞赏.

Mik*_*son 12

你可以尝试这样的事情.

select T1.member_id,
       datediff(day, T1.transfer_date, T3.transfer_date) as DD
from YourTable as T1
  cross apply (select top 1 T2.transfer_date
               from YourTable as T2
               where T2.transfer_date > T1.transfer_date and
                     T2.member_id = T1.member_id
               order by T2.transfer_date) as T3
Run Code Online (Sandbox Code Playgroud)

SE-数据