DECLARE @d smalldatetime SET @d ='2004-7-1' SELECTIDENTITY(int,0,1) AS i INTO #t FROM sysobjects SELECT MAX(M1) AS M1, MAX(M2) AS M2, MAX(M3) AS M3, MAX(M4) AS M4, MAX(M5) AS M5, MAX(M6) AS M6, MAX(M7) AS M7 FROM ( SELECT CASE dw WHEN1THEN d ENDAS m1, CASE dw WHEN2THEN d ENDAS m2, CASE dw WHEN3THEN d ENDAS m3, CASE dw WHEN4THEN d ENDAS m4, CASE dw WHEN5THEN d ENDAS m5, CASE dw WHEN6THEN d ENDAS m6, CASE dw WHEN7THEN d ENDAS m7, ww FROM ( SELECT DAY(MyDate) AS d,DATEPART(dw,MyDate) AS dw,DATEPART(ww,MyDate) AS ww FROM ( SELECT DATEADD ( d , i, @d ) AS Mydate FROM #t WHERE i<32-Day(@d+32-Day(@d)) ) AS a ) AS b ) AS c GROUPBY ww DROPTABLE #t