Я написал нижеследующий ПРОСМОТР, используя UDF, но мне интересно, есть ли способ сделать это без необходимости UDF.Единственный другой вариант, который я могу найти, - ВЫБРАТЬ жестко закодированные значения UNION, но мне это не нравится.Любые предложения или я должен просто оставить все как есть?Я использую MS SQL Server 2008 R2, поэтому все, что доступно, - бесплатная игра.
CREATE FUNCTION GetN(@N int)
RETURNS @numbers TABLE (N int PRIMARY KEY NOT NULL)
AS
BEGIN
DECLARE @i int
SET @i = 0
WHILE (@i < @N)
BEGIN
INSERT @numbers SELECT @i
SET @i = @i + 1
END
RETURN
END
GO
CREATE VIEW Last10Weeks AS
SELECT DATEPART(wk, GETDATE())-N as WeekNumber
, DATEADD(day, (N*-7) - 1 - (DATEPART(dw, GETDATE()) + @@DATEFIRST - 2) % 7, GETDATE()) AS StartDate
, DATEADD(day, (N*-7) + 5 - (DATEPART(dw, GETDATE()) + @@DATEFIRST - 2) % 7, GETDATE()) AS EndDate
FROM GetN(10)