初始点: 我创建了一个带功能的日历表(见下文)。我用这个表,例如汇总当年每周的条目。
问题: 第一周的计算是错误的,因为一年中的最后一周的值为1以及一年中的第一周。
问题: 由于日历表用于许多不同的查询,因此仅使用“Where”子句修改来解决此问题是不可能的。是否有可能创建一个日历表只是连续的日历表,包括上周?
FUNCTION [dbo].[fct_Days_Periode](@startDate datetime, @endDate datetime) RETURNS @RET TABLE
( DateA datetime,
Year as YEAR(DateA),
QuarterNr as DATEPART(quarter, DateA),
Quarter as 'Quarter '+CAST(DATEPART(quarter, DataA) as varchar(10)),
MonthNr as MONTH(DataA),
MonthA as DATENAME(month, DateA),
KW as DATEPART(ISO_WEEK, DataA),
WeekdayA as DATENAME(weekday, DataA)
)
AS
BEGIN
WHILE @startDate<=@endDate
BEGIN
INSERT INTO @RET (DataA) VALUES (@startDate)
SET @startDate=DATEADD(day, 1, @startDate)
END
RETURN
END