Разделение пересечения диапазона дат в SQL

У меня есть база данных SQL Server 2005, которая содержит таблицу под названием Memberships.

Схема таблицы:

PersonID int, Surname nvarchar(30), FirstName nvarchar(30), Description nvarchar(100), StartDate datetime, EndDate datetime

В настоящее время я работаю над функцией сетки, которая показывает распределение членства по лицам. Одним из требований является разделение строк членства там, где есть пересечение диапазонов дат. Пересечение должно быть связано с Фамилией и FirstName, то есть разделение происходит только с записями членства с одинаковыми Фамилией и FirstName.

Пример таблицы данных:

18  Smith  John  Poker Club  01/01/2009  NULL
18  Smith  John  Library     05/01/2009  18/01/2009
18  Smith  John  Gym         10/01/2009  28/01/2009
26  Adams  Jane  Pilates     03/01/2009  16/02/2009

Ожидаемый набор результатов:

18  Smith  John  Poker Club                  01/01/2009  04/01/2009
18  Smith  John  Poker Club / Library        05/01/2009  09/01/2009
18  Smith  John  Poker Club / Library / Gym  10/01/2009  18/01/2009
18  Smith  John  Poker Club / Gym            19/01/2009  28/01/2009
18  Smith  John  Poker Club                  29/01/2009  NULL
26  Adams  Jane  Pilates                     03/01/2009  16/02/2009

Кто-нибудь знает, как я мог бы написать хранимую процедуру, которая будет возвращать набор результатов, который имеет разбивку, описанную выше.

Ответы на вопрос(3)

Ваш ответ на вопрос