У меня есть таблица, содержащая 2 поля даты и идентификатор (id, fromdate и todate). Эти даты перекрываются любым возможным способом. Мне нужно составить список сегментов, каждый из которых имеет дату начала и окончания, описывающую отдельные сегменты в этом списке.
Например:
id, FromDate ToDate
1, 1944-12-11, 1944-12-31
2, 1945-01-01, 1945-12-31
3, 1945-01-01, 1945-06-30
4, 1945-12-31, 1946-05-01
5, 1944-12-17, 1946-03-30
Следует произвести все сегменты всех перекрытий:
1, 1944-12-11, 1944-12-16
1, 1944-12-17, 1944-12-31
5, 1944-12-17, 1944-12-31
2, 1945-01-01, 1945-06-30
3, 1945-01-01, 1945-06-30
5, 1945-01-01, 1945-06-30
2, 1945-07-01, 1945-12-09
5, 1945-07-01, 1945-12-09
2, 1945-12-10, 1945-12-31
4, 1945-12-10, 1945-12-31
5, 1945-12-10, 1945-12-31
4, 1946-01-01, 1946-03-30
5, 1946-01-01, 1946-03-30
4, 1946-04-01, 1946-05-01
Или, возможно, поможет диаграмма
INPUT
1 <---->
2 <----------->
3 <----->
4 <---------->
5 <----------------->
OUTPUT
1 <->
1 <->
5 <->
2 <----->
3 <----->
5 <----->
2 <->
5 <->
2 <->
4 <->
5 <->
4 <->
5 <->
4 <---->
Пожалуйста, помогите