Доброго времени суток!
Передо мной стоит задача: свернуть непрерывные временные интервалы для каждого сочетания Id и DiscountId.
При поиске решений обнаружил несколько скриптов Ицик Бен-Гана. Решение попытался основать на SQL Challenge – packing time intervals and merging valid time periods (правда, там Оракл, но синтаксис в рамках задачи совпал).
Фрагмент тестовых данных
![Картинка с другого сайта.]()
Текущий результат, красным обведены некорректные значения.
![Картинка с другого сайта.]()
Строка 3 должна иметь DateTo 2017-09-08 12:00:00.000.
Строка 7 должна иметь DateTo 2017-09-19 12:00:00.000.
Ошибку получаю при наличии более одного временного интервала для одной пары Id и DiscountId (например Id = 1 и DiscountId = 0; Id=1 и DiscountId = 6). Фрагменты кода, которые считаю ошибочными, выделил /*!!!*/code/*!!!*/. Но не понимаю как исправить. Помогите, пожалуйста.
Передо мной стоит задача: свернуть непрерывные временные интервалы для каждого сочетания Id и DiscountId.
При поиске решений обнаружил несколько скриптов Ицик Бен-Гана. Решение попытался основать на SQL Challenge – packing time intervals and merging valid time periods (правда, там Оракл, но синтаксис в рамках задачи совпал).
Фрагмент тестовых данных
+ Скрипт для генерации таблицы |

+ Фрагмент кода с неверным результатом |
Текущий результат, красным обведены некорректные значения.

Строка 3 должна иметь DateTo 2017-09-08 12:00:00.000.
Строка 7 должна иметь DateTo 2017-09-19 12:00:00.000.
Ошибку получаю при наличии более одного временного интервала для одной пары Id и DiscountId (например Id = 1 и DiscountId = 0; Id=1 и DiscountId = 6). Фрагменты кода, которые считаю ошибочными, выделил /*!!!*/code/*!!!*/. Но не понимаю как исправить. Помогите, пожалуйста.