Как объединить строки из одной таблицы с разными датами - PullRequest
1 голос
/ 17 апреля 2020

Я только новичок в SQL, и я столкнулся со следующей проблемой:

У меня есть таблица со списком заказов SKU, где в каждой строке отображается номер SKU, дата доставки и количество заказов. Я хочу как-то переставить таблицу таким образом, чтобы строки содержали не только дату доставки для данного заданного количества, но также и следующую дату доставки, которая произошла в будущем.

Таблица в настоящее время выглядит так:

SKU/  DELIVERY_DATE/ QUANTITY_ORDERED 
1.SKUx       14/3/2020   200
2.SKUx         19/3/2020    400
3.SKUx          27/3/2020   550

Чего я хочу добиться, это:

SKU/  DELIVERY_DATE/ **NEXT_DELIVERY_DATE**/ QUANTITY_ORDERED <br/>
1.SKUx         14/3/2020 **19/3/2020**  200
2.SKUx         19/3/2020  **27/3/2020**  400
3.SKUx          27/3/2020  **NULL** 550

Помните, как показано выше, что дни между двумя поставками различаются (5 дней между 14 / 3-19 / 3 и 8 дней между 27 / 3-19 / 3) и, следовательно, не может выбрать абсолютное значение, чтобы столбец появился дважды, например

SELECT SKU, DELIVERY_DATE,
       DELIVERY_DATE + 5 AS NEXT_DELIVERY_DATE,
       QUANTITY_ORDERED
FROM TABLE1

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 17 апреля 2020

Использование lead():

select t1.*,
       lead(delivery_date) over (partition by sku order by delivery_date) as next_delivery_date
from table1 t1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...