Я пытаюсь написать процедуру, которая вставляет строки во временную таблицу. Основой таблицы является таблица страховых полисов, в которой указана сумма премии, заработанной за период действия полисов. исходные данные состоят из дат trans_date (дата продажи) и дат policy_start и policy_end. То есть, если полис рассчитан на 12 месяцев, мы даем каждый месяц 1/12 собранной премии.
так что-то вроде
while trans_month < policy_end month
insert to tblUEPtmp
select dateadd(mm, 1, trans_date), earned_premium from tblpolicys
set trans_date = dateadd(mm, 1, trans_date)
(я знаю, что это код мусора, но на данный момент я совершенно сбит с толку)
Моя проблема заключается в том, что мне нужно создать дополнительные 11 строк данных и изменить дату транзакции, добавляя каждый месяц 1 месяц до измененной даты транзакции = policy_end date.
Я исследовал использование CTE, но пока петли в CTE невозможны ..
это что-то, что может сделать функция таблицы с несколькими состояниями?
Большое спасибо.