获取每个产品和ID的日期差

问题描述 投票:0回答:2

我有一张这样的桌子:

enter image description here

我想根据Product_Order得出产品之间的日期差,同时考虑ID。因此,给定ID的Product_Order的最后一个数字应为NULL。

例如,对于ID 1,我想要这样的日期差:

Date Difference
From 1 to 2 - 4 years
From 2 to 3 - 5 years
sql ssms
2个回答
0
投票

假设表名是'test'。尝试-

select a.date - b.date
from test a, test b
where a.id = b.id 
and a.product_order < b.product_order 

0
投票

您可以使用窗口函数LEAD()来获取相同date的下一个id值(按product_number排序,并使用DATEDIFF()计算差值:

SELECT
    t.*,
    DATEDIFF(
        year,
        LEAD([date]) OVER(PARTITION BY id ORDER BY product_order),
        [date]
    ) diff
FROM mytable

这将为您提供多年的差异,这似乎正是您想要的。

© www.soinside.com 2019 - 2024. All rights reserved.