每组最大日期之间的天数

时间:2015-11-24 15:23:33

标签: sql datediff rank

我想知道每个订单之间的天数。我有每个订单的日期和参考,以显示它的第一个,第二个第三个等订单

我想看看订单1和2之间有多少天,然后是2到3之间的天数等等。

select OrderID, OrderDate, RankOrder
from Orders

一些示例数据将是:

Order 1 -> 01/01/2015 -> 1
Order 2 -> 03/01/2015 -> 2
Order 3 -> 10/01/2015 -> 3

我希望结果有一个额外的列,其中包含天数:

Order 1 -> 01/01/2015 -> 1 -> 2
Order 2 -> 03/01/2015 -> 2 -> 7
Order 3 -> 10/01/2015 -> 3 -> 0

最后一个订单可能会查看当前日期以确定日期。

1 个答案:

答案 0 :(得分:1)

因为你有排名功能,所以这只是一个日期算术的连接。使用SQL Server的datediff()函数,如下所示:

select o.*,
       datediff(day, o.OrderDate,
                coalesce(onext.OrderDate, getdate()) as diff
from orders o left join
     orders onext
     on o.rankorder = onext.rankorder - 1;

日期算术取决于数据库。