Я работаю над системой хранения встреч и повторяющихся встреч.Моя схема выглядит следующим образом
Appointment
-----------
ID
Start
End
Title
RecurringType
RecurringEnd
RecurringTypes
---------------
Id
Name
Я сохранил простые повторяющиеся типы и поддерживаю только
Week Days,
Weekly,
4 Weekly,
52 Weekly
Если RecurringType имеет значение null, то это назначение не повторяется, RecurringEnd также может иметь значение null иесли его значение равно null, но RecurringType является значением, оно будет повторяться бесконечно.Я пытаюсь написать хранимую процедуру для возврата всех встреч и их дат для заданного диапазона дат.
У меня есть хранимая процедура, работающая для неповторяющихся собраний, но я изо всех сил пытаюсь найти лучший способвернуть повторения, это то, что у меня есть до сих пор
ALTER PROCEDURE GetAppointments
(
@StartDate DATETIME,
@EndDate DATETIME
)
AS
SELECT
appointment.id,
appointment.title,
appointment.recurringType,
appointment.recurringEnd,
appointment.start,
appointment.[end]
FROM
mrm_booking
WHERE
(
Start >= @StartDate AND
[End] <= @EndDate
)
Теперь мне нужно добавить предложения where, чтобы также подобрать повторения и изменить то, что возвращается в select, чтобы вернуть начальную и конечную даты дляобычные встречи и рассчитанные даты начала / окончания повторений.
Любые указатели на лучший способ справиться с этим было бы замечательно.Я использую SQL Server 2005