В приведенном ниже запросе я пытаюсь сопоставить это подмножество строк, чтобы я мог сделать DATEDIFF между датой окончания 1-й записи и датой реального времени 2-й записи;затем то же самое с DATEDIFF между 2-й и 3-й записью. Это должно продолжаться до тех пор, пока последняя запись не будет иметь конечную дату NULL, поскольку это может быть случай с 2,3,4,5 ... строками, с которыми это нужно сделать. Для сравнения необходимо, чтобы код местоположения и код группы продуктов были одинаковыми, а затем иметь порядок, согласно которому 1-я запись является самым ранним, а последняя запись имеет самый старый. Хотя я не могу выработать логику вообще. Любая помощь будет принята с благодарностью.
В настоящее время у меня есть предложение WHERE для определенного кода местоположения / кода продукта исключительно с точки зрения тестирования, поскольку набор результатов будет большим и громоздким для тестирования.
SELECT wpa1.[id] 'WPA1_ID',
wpa2.[id] 'WPA2_Id',
wpa1.[planogramucr],
wpa1.[locationproductgroupucr],
wpa1.[locationcode],
wpa1.[productgroupcode],
wpa1.[categoryname],
wpa1.[assignmentstatus],
wpa1.[livedate],
wpa1.[enddate],
DATEDIFF(day, wpa1.EndDate, wpa2.LiveDate) AS 'DateDiff_bet_live_end',
wpa1.[lastmodifieddate]
FROM [Staging].[CustomerWorkAround].[customerplanasscc] wpa1
JOIN [CustomerWorkAround].[customerplanasscc] wpa2
ON wpa1.Id = wpa2.Id
AND wpa1.PlanogramUCR = wpa2.PlanogramUCR
AND wpa1.LocationProductGroupUCR = wpa2.LocationProductGroupUCR
WHERE wpa1.EndDate IS NOT NULL -- Don't need enddates in the first table
AND wpa1.LocationCode = 102
AND wpa1.ProductGroupCode = 38
ORDER BY wpa1.locationcode,
wpa1.productgroupcode,
wpa1.livedate;
Это пример набора результатов:
**WPA1_ID WPA2_Id planogramucr locationproductgroupucr locationcode productgroupcode categoryname assignmentstatus livedate enddate DateDiff_bet_live_end lastmodifieddate**
8586 8586 7d82d260-820b-4d7e-ab2d-594b6c6cefba 66ca4c51-b7d8-4943-b3c7-b69be010d2b9 102 38 FRESH MEAT - PORK 0 2019-09-24T00:00:00 2019-11-01T00:00:00 -38 2019-09-24T08:47:36
8773 8773 880c9242-9bca-4c5c-8a91-131c720d4b37 66ca4c51-b7d8-4943-b3c7-b69be010d2b9 102 38 FRESH MEAT - PORK 1 2019-11-01T00:00:00 2019-11-30T00:00:00 -29 2019-09-24T08:47:36
8860 8860 66948c90-022e-46a3-9f06-fc26e1d9d3a0 207b6ca4-fb7d-4c9e-9a19-da8a06a51e31 102 38 FRESH MEAT - PORK 1 2019-11-30T00:00:00 43797 2019-09-24T08:47:41