Я работаю в медицинской страховой компании и пытаюсь создать запрос, который выводит данные о допустимых пределах для участников.В исходной таблице перечислены исторические даты всех месяцев, на которые участник имеет право, один раз в месяц.Например, если член 55555 подходит с 01/15/2018-05 / 15/2018, будет пять записей.
Это было бы легко решить (с минимальным и максимальным значением), если бы недля пробелов в праве, так что это делает его сложнее.В идеале мне бы хотелось иметь отдельную строку для каждого участника с указанием даты его начала и окончания.Таким образом, если предыдущий член имел право на участие в программе, которое восстановилось в июле и продолжалось до августа, должно быть возвращено две строки:
Member_Nbr Start_Date End_Date
55555 01/15/2018 05/15/2018
55555 07/15/2018 08/15/2018
----------Sample Dataset:
create table #gaps (member_nbr varchar(5),membership_date date)
insert into #gaps(member_nbr,membership_date)
values ('55555','01/15/2018'),('55555','02/15/2018'),('55555','03/15/2018'),
('55555','04/15/2018'),('55555','05/15/2018'),('55555','07/15/2018'),
('55555','08/15/2018')
----------Without Gaps
select member_nbr,min(membership_date),max(membership_date)
from #gaps
group by member_nbr
order by member_nbr
----------With Gaps (desired output)
Есть ли способ вернуть даты приемлемости желаемым способом?
Спасибо
Билли