2015-01-30 5 views
0

Как получить набор результатов в TSQL с диапазоном дат за последние 10 недель, включая неделю в качестве столбца.TSQL Get Date диапазон последних 10 недель с неделями

Date     WeekNo 
2014-11-21   1 
2014-11-22   1 
2014-11-23   1 
.... 
2014-11-28   2 
2014-11-29   2 

Я был в состоянии поставить это вместе с помощью другой вопрос, но мне не удалось включить weekNo в нем.

DECLARE @DateFrom smalldatetime, @DateTo smalldatetime; 
SET @DateFrom= DATEADD(week,-10, GETDATE()); 
SET @DateTo=GETDATE(); 
------------------------------- 
WITH T(date) 
AS 
( 
SELECT @DateFrom 
UNION ALL 
SELECT DateAdd(day,1,T.date) FROM T WHERE T.date < @DateTo 
) 
SELECT date FROM T OPTION (MAXRECURSION 32767); 

ответ

1

Если выше запрос работает, вы можете просто дата арифметика, чтобы получить неделю:

WITH T(date) AS 
    (SELECT @DateFrom 
     UNION ALL 
    SELECT DateAdd(day,1,T.date) FROM T WHERE T.date < @DateTo 
    ) 
SELECT date, 
     1 + (datediff(day, @DateFrom, date)/7) 
FROM T 
OPTION (MAXRECURSION 32767); 
+0

спасибо !! Мне нужно больше кофе! – user18620

Смежные вопросы