Помогите плиз с запросом

STE?
Дата: 30.01.2013 14:45:08
Добрый, день.
Подскажите как правильно составить запрос?
	declare @stDate datetime = '20111231' --40908
	declare @enDate datetime = '20130102' --41276
	
	;with ste (Y,M) as(
	select datepart(year,@StDate) as Y,datepart(month,@StDate) as M
	union all
	select datepart(year,dateadd(month,1,ste.Y)) as Y,datepart(month,dateadd(month,1,ste.M)) as M	
	from ste
	where ste.Y <= datepart(year,@enDate) and ste.M <= datepart(month,@enDate)
	)
	select *
	from ste

на выходе получаю

Y M
2011 12
а хочется

Y M
2011 12
2012 1
2012 2
...
2013 1

Заранее спасибо.
samoxod
Дата: 30.01.2013 15:11:03
	declare @stDate datetime = '20111231' --40908
	declare @enDate datetime = '20130102' --41276
	select datepart(year,@StDate) as Y,datepart(month,@StDate) as M
	
	;with ste (Y,M,D) 
       as(
	select datepart(year,@StDate) as Y,datepart(month,@StDate) as M, @stDate as D
	union all
	select datepart(year,dateadd(month,1,ste.D)) as Y,datepart(month,dateadd(month,1,ste.D)) as M, dateadd(month,1,ste.D)	
	from ste
	where ste.D <= @enDate
	)
	select Y, M from ste
STE?
Дата: 30.01.2013 16:36:01
samoxod,

спасибо, то что доктор прописал.