Я создаю список месяцев, используя метод, показанный здесь: Месяцы между двумя датами
Когда у меня есть эти даты, я хочу сохранить только те, где они находятся между любыми строками.дата начала и окончания для конкретного клиента.
Итак, таблица:
client start_date end_date
1 2014-06-01 2016-02-29
1 2016-03-01 2016-12-31
1 2017-04-01 NULL
Где NULL представляет все еще активную без будущего набора дату окончания.
Так что я бынравится получать это (я использую EOMONTH для каждого месяца):
2014-06-30
2014-07-31
... ect ...
2016-11-30
2016-12-31
2017-04-30
2017-05-31
... ect ...
Так что месяцев с декабря 2016 года по апрель 2017 года нет.Для каждого клиента может быть любое количество строк.Они могут быть без пробелов, и они могут быть с пробелами, как в случае выше.