如何将上周的日历表值从1更改为连续值

时间:2014-01-14 09:48:44

标签: sql tsql

初始点: 我创建了一个带功能的日历表(见下文)。我用这个表,例如汇总当年每周的条目。

问题: 第一周的计算是错误的,因为一年中的最后一周的值为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

0 个答案:

没有答案