SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE VIEW [kalender].[Kalender_Matrix] AS WITH [Kalender_Heute] AS (SELECT [T1].* , [T2].[Invoice Date] AS [Heute] FROM [kalender].[Kalender_Tage] [T1] CROSS JOIN [kalender].[Aktueller_Tag] [T2]) , [Kalender_Heute_Vorjahr_Vormonat] AS (SELECT [Datum] , [Tag_im_Jahr] , [Wochentag] , [Wochentag_int] , [Periode] , [Kalenderwoche] , [Quartal_int] , [Datum_str] , [Datum_int] , [MoFr] , [MoSa] , [Jahr] , [Quartal] , [Monat] , [Tag] , [Heute] , dateadd(YY, -1, [Heute]) AS [Heute_Vorjahr] , dateadd(MM, -1, [Heute]) AS [Heute_Vormonat] FROM [Kalender_Heute]) , [Zeit_Dimension_Berechnung] AS (SELECT [T1].* , iif([Datum] = [Heute], 1, 0) AS "Aktueller Tag" , iif([Datum] = dateadd(DD, -1, [Heute]), 1, 0) AS "Gestern" , iif([Datum] <= [Heute] AND [Datum] >= [kalender].[bomonth]([Heute]), 1, 0) AS "M bisher" , iif([Datum] <= [Heute_Vorjahr] AND [Datum] >= [kalender].[bomonth]([Heute_Vorjahr]), 1, 0) AS "M bisher Vorjahr" -- "M bisher / M bisher VJ", , iif([Datum] <= [Heute_Vormonat] AND [Datum] >= [kalender].[bomonth]([Heute_Vormonat]), 1, 0) AS "Voriger M bisher" -- "M bisher gruppiert", , iif([Datum] <= [Heute] AND [Datum] >= [kalender].[boquarter]([Heute]), 1, 0) AS "Q bisher" -- TODO , iif([Datum] <= dateadd(MM, -3, [Heute]) AND [Datum] >= [kalender].[boquarter](dateadd(MM, -3, [Heute])), 1, 0) AS "Voriges Q bisher" -- "Q bisher gruppiert", , iif([Datum] <= [Heute] AND [Datum] >= datefromparts(year([Heute]), 1, 1), 1, 0) AS "J bisher" , iif([Datum] <= [Heute_Vorjahr] AND [Datum] >= datefromparts(year([Heute]) - 1, 1, 1), 1, 0) AS "Voriges J bisher" , -- "J bisher gruppiert", -- 0 as "J bisher / VJ bisher", iif([Datum] <= eomonth([Heute]) AND [Datum] >= [kalender].[bomonth]([Heute]), 1, 0) AS "Aktueller Monat" , iif([Datum] <= eomonth([Heute_Vormonat]) AND [Datum] >= [kalender].[bomonth]([Heute_Vormonat]), 1, 0) AS "Vormonat (-1)" , iif([Datum] <= eomonth(dateadd(MM, -2, [Heute])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -2, [Heute])), 1, 0) AS "Vormonat (-2)" , iif([Datum] <= eomonth(dateadd(MM, -3, [Heute])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -3, [Heute])), 1, 0) AS "Vormonat (-3)" , iif([Datum] <= eomonth([Heute_Vorjahr]) AND [Datum] >= [kalender].[bomonth]([Heute_Vorjahr]), 1, 0) AS "Akt. Monat Vorjahr" , iif([Datum] <= eomonth(dateadd(MM, -1, [Heute_Vorjahr])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -1, [Heute_Vorjahr])), 1, 0) AS "Vormonat (-1) Vorjahr" , iif([Datum] <= eomonth(dateadd(MM, -2, [Heute_Vorjahr])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -2, [Heute_Vorjahr])), 1, 0) AS "Vormonat (-2) Vorjahr" , iif([Datum] <= eomonth(dateadd(MM, -3, [Heute_Vorjahr])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -3, [Heute_Vorjahr])), 1, 0) AS "Vormonat (-3) Vorjahr" , iif([Datum] <= eomonth([Heute]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -6, [Heute])), 1, 0) AS "letzte 6 Monate" , iif([Datum] <= eomonth([Heute]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -12, [Heute])), 1, 0) AS "letzte 12 Monate" , iif([Datum] <= [Heute_Vormonat] AND [Datum] >= datefromparts(year([Heute_Vormonat]), 1, 1), 1, 0) AS "per Vormonat" , iif([Datum] <= dateadd(MM, -2, [Heute]) AND [Datum] >= datefromparts(year(dateadd(MM, -2, [Heute])), 1, 1), 1, 0) AS "per Vormonat (-2)" , iif([Datum] <= dateadd(MM, -3, [Heute]) AND [Datum] >= datefromparts(year(dateadd(MM, -3, [Heute])), 1, 1), 1, 0) AS "per Vormonat (-3)" , iif([Datum] <= dateadd(MM, -1, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(MM, -1, [Heute_Vorjahr])), 1, 1), 1, 0) AS "per Vormonat Vorjahr" , iif([Datum] <= dateadd(MM, -2, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(MM, -2, [Heute_Vorjahr])), 1, 1), 1, 0) AS "per Vormonat (-2) Vorjahr" , iif([Datum] <= dateadd(MM, -3, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(MM, -3, [Heute_Vorjahr])), 1, 1), 1, 0) AS "per Vormonat (-3) Vorjahr" , iif(year([Datum]) = year([Heute]), 1, 0) AS "Aktuelles Jahr" , iif(year([Datum]) = year([Heute]) - 1, 1, 0) AS "letztes Jahr" , iif([Datum] <= eomonth(dateadd(MM, -2, [Heute])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -5, [Heute])), 1, 0) AS "3 Monate bis Vormonat (-2)" , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute])), 1, 0) AS "Quartal (-1)" , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -2, [Heute])), 1, 0) AS "Quartal (-2)" , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -3, [Heute])), 1, 0) AS "Quartal (-3)" , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute_Vorjahr])), 1, 0) AS "Quartal (-1) Vorjahr" , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -2, [Heute_Vorjahr])), 1, 0) AS "Quartal (-2) Vorjahr" , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -3, [Heute_Vorjahr])), 1, 0) AS "Quartal (-3) Vorjahr" , iif(([Datum] <= dateadd(QQ, -1, [Heute]) AND [Datum] >= datefromparts(year(dateadd(QQ, -1, [Heute])), 1, 1)) OR [Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute])), 1, 0) AS "Quartal (-1) kum." , iif(([Datum] <= dateadd(QQ, -1, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(QQ, -1, [Heute_Vorjahr])), 1, 1)) OR [Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute_Vorjahr])), 1, 0) AS "Quartal (-1) kum. Vorjahr" , --0 as "restl. Jahr", --0 as "Gesamtjahr", iif([Datum] <= eomonth([Heute_Vormonat]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -12, [Heute])), 1, 0) AS "letzte 11 Monate" , iif([Datum] <= eomonth([Heute_Vormonat]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -14, [Heute])), 1, 0) AS "letzte 13 Monate" --0 as "12 Monate kum. rollierend" , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -3, [Heute]), 1, 0) AS "letzte 3 Tage" , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -7, [Heute]), 1, 0) AS "letzte 7 Tage" , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -14, [Heute]), 1, 0) AS "letzte 14 Tage" , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -30, [Heute]), 1, 0) AS "letzte 30 Tage" FROM [Kalender_Heute_Vorjahr_Vormonat] [T1]) , [Zeit_Dimension_mit_Gruppen] AS (SELECT [Datum] , [Tag_im_Jahr] , [Wochentag] , [Wochentag_int] , [Periode] , [Kalenderwoche] , [Quartal_int] , [Datum_str] , [Datum_int] , [MoFr] , [MoSa] , [Jahr] , [Quartal] , [Monat] , [Tag] , [Heute] , [Heute_Vorjahr] , [Heute_Vormonat] , [Aktueller Tag] , [Gestern] , [M bisher] , [M bisher Vorjahr] , [M bisher] + [M bisher Vorjahr] * 2 AS [M bisher / M bisher VJ] , [Voriger M bisher] , [M bisher] + [Voriger M bisher] * 2 AS [M bisher gruppiert] , [Q bisher] , [Voriges Q bisher] , [Q bisher] + [Voriges Q bisher] * 2 AS [Q bisher gruppiert] , [J bisher] , [Voriges J bisher] , [J bisher] + [Voriges J bisher] * 2 AS [J bisher gruppiert] , [Aktueller Monat] , [Vormonat (-1)] , [Vormonat (-2)] , [Vormonat (-3)] , [Akt. Monat Vorjahr] , [Vormonat (-1) Vorjahr] , [Vormonat (-2) Vorjahr] , [Vormonat (-3) Vorjahr] , [letzte 6 Monate] , [letzte 12 Monate] , [per Vormonat] , [per Vormonat (-2)] , [per Vormonat (-3)] , [per Vormonat Vorjahr] , [per Vormonat (-2) Vorjahr] , [per Vormonat (-3) Vorjahr] , [Aktuelles Jahr] , [letztes Jahr] , [3 Monate bis Vormonat (-2)] , [Quartal (-1)] , [Quartal (-2)] , [Quartal (-3)] , [Quartal (-1) Vorjahr] , [Quartal (-2) Vorjahr] , [Quartal (-3) Vorjahr] , [Quartal (-1) kum.] , [Quartal (-1) kum. Vorjahr] , [letzte 11 Monate] , [letzte 13 Monate] , [letzte 3 Tage] , [letzte 7 Tage] , [letzte 14 Tage] , [letzte 30 Tage] FROM [Zeit_Dimension_Berechnung]) SELECT * FROM [Zeit_Dimension_mit_Gruppen] GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO GO