1
нужно создать временную таблицу, которая заполняется на основе двух параметров:Loop на основе значения параметра
declare @Start date = '01/01/2015'
declare @End date = '12/31/2015'
Временная таблица должна иметь столбец, который будет захватывать YYYYMM за все годы и месяц, которые между @Start и @End.
Вот что у меня есть. Я хочу, чтобы остановить его на 201412, а затем начать снова 201501. Вместо этого петля продолжает идти в приросте плюс 1 (я не хочу видеть 201413..so на):
declare @Start date = '01/01/2014'
declare @End date = '12/31/2015'
declare @monthstart as int
declare @monthend as int
declare @increment as int
set @monthstart = (SELECT LEFT(CONVERT(varchar, @Start,112),6))
set @monthend = (SELECT LEFT(CONVERT(varchar, @End,112),6))
create table #datetemp (RelevantYYYYMM int)
insert into #datetemp values (@monthstart)
set @increment = @monthstart
While @increment < @monthend
BEGIN
set @increment = (select Max(RelevantYYYYMM) + 1 from #datetemp)
insert into #datetemp values (@increment)
set @increment = (select Max(RelevantYYYYMM) from #datetemp)
IF (select Max(RelevantYYYYMM) from #datetemp) > @monthend
Break
else
continue
END
select * from #datetemp
Это отлично работает. – NonProgrammer