我想知道每个订单之间的天数。我有每个订单的日期和参考,以显示它的第一个,第二个第三个等订单
我想看看订单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
最后一个订单可能会查看当前日期以确定日期。
答案 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;
日期算术取决于数据库。