Получение разницы в датах по продукту и идентификатору - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть такая таблица:

enter image description here

Я хочу получить разницу в датах между продуктами в соответствии с Product_Order, принимая во вниманиеID.Поэтому последнее число Product_Order для данного идентификатора должно быть NULL.

Например, для ID 1 я хотел бы получить разницу в дате следующим образом:

Date Difference
From 1 to 2 - 4 years
From 2 to 3 - 5 years

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Вы можете использовать оконную функцию LEAD(), чтобы получить следующее значение date для того же id (упорядочено по product_number), и DATEDIFF(), чтобы вычислить разницу:

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

Это даст вам разницу в годах, которая, кажется, то, что вы ищете.

0 голосов
/ 27 сентября 2019

Предполагается, что имя таблицы 'test'.Попробуйте -

select a.date - b.date
from test a, test b
where a.id = b.id 
and a.product_order < b.product_order 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...