Wednesday, March 25, 2015

DateDimension table help


DECLARE @DimFiscalYearCalendar TABLE
(
[ID] INT NOT NULL IDENTITY(1,1),
[Month] INT NOT NULL,
[Year] INT NOT NULL,
[F_Year] INT NOT NULL,
[Quarter] varchar(2) NOT NULL,
[Date] DATETIME NOT NULL
)
DECLARE @startDate datetime
DECLARE @endDate datetime
DECLARE @index int
DECLARE @days int
DECLARE @date date

SET @startDate = '2014-09-01'
SET @endDate = '2015-08-31'
SET @index = 0

SELECT @days = DATEDIFF(day, @startDate, @endDate)

WHILE @index <= @days BEGIN

SET @date = @startDate + @index

INSERT INTO @DimFiscalYearCalendar (
[Month],
[Year],
[F_Year],
[Quarter],
[Date]
)
SELECT
MONTH(@date) AS [Month],
YEAR(@date) AS [Year],
CASE
WHEN MONTH(@date) >= 9 THEN YEAR(@date) + 1
ELSE YEAR(@date)
END AS [F_Year],
CASE
WHEN MONTH(@date) >= 9 AND MONTH(@date) <= 11 THEN 'Q1'
WHEN MONTH(@date) IN(1, 2, 12) THEN 'Q2'
WHEN MONTH(@date) >= 3 AND MONTH(@date) <= 5 THEN 'Q3'
WHEN MONTH(@date) >= 6 AND MONTH(@date) <= 8 THEN 'Q4'
END AS [Quarter],
@date AS [Date]

SET @index = @index + 1
END

SELECT * FROM @DimFiscalYearCalendar





A Fan of SSIS, SSRS and SSAS



No comments:

Post a Comment