SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE VIEW [kalender].[Kalender_Dimension] AS WITH [Zeit_Dimension_mit_Text] 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] , iif([Aktueller Tag] = 1, [Tag], NULL) AS [Aktueller Tag] , iif([Gestern] = 1, [Tag], NULL) AS [Gestern] , iif([M bisher] = 1, [Tag], NULL) AS [M bisher] , iif([M bisher Vorjahr] = 1, [Tag], NULL) AS [M bisher Vorjahr] , convert(varchar(30), CASE WHEN [M bisher / M bisher VJ] = 1 THEN 'M bisher' WHEN [M bisher / M bisher VJ] = 2 THEN 'M bisher VJ' ELSE NULL END) AS [M bisher / M bisher VJ] , iif([Voriger M bisher] = 1, [Tag], NULL) AS [Voriger M bisher] , convert(varchar(30), CASE WHEN [M bisher gruppiert] = 1 THEN 'M bisher' WHEN [M bisher gruppiert] = 2 THEN 'Voriger M bisher' ELSE NULL END) AS [M bisher gruppiert] , iif([Q bisher] = 1, [Quartal], NULL) AS [Q bisher] , iif([Voriges Q bisher] = 1, [Quartal], NULL) AS [Voriges Q bisher] , convert(varchar(30), CASE WHEN [Q bisher gruppiert] = 1 THEN 'Q bisher' WHEN [Q bisher gruppiert] = 2 THEN 'Voriges Q bisher' ELSE NULL END) AS [Q bisher gruppiert] , iif([J bisher] = 1, [Quartal], NULL) AS [J bisher] , iif([Voriges J bisher] = 1, [Quartal], NULL) AS [Voriges J bisher] , convert(varchar(30), CASE WHEN [J bisher gruppiert] = 1 THEN 'J bisher' WHEN [J bisher gruppiert] = 2 THEN 'Voriges J bisher' ELSE NULL END) AS [J bisher gruppiert] , iif([Aktueller Monat] = 1, [Monat], NULL) AS [Aktueller Monat] , iif([Vormonat (-1)] = 1, [Monat], NULL) AS [Vormonat (-1)] , iif([Vormonat (-2)] = 1, [Monat], NULL) AS [Vormonat (-2)] , iif([Vormonat (-3)] = 1, [Monat], NULL) AS [Vormonat (-3)] , iif([Akt. Monat Vorjahr] = 1, [Monat], NULL) AS [Akt. Monat Vorjahr] , iif([Vormonat (-1) Vorjahr] = 1, [Monat], NULL) AS [Vormonat (-1) Vorjahr] , iif([Vormonat (-2) Vorjahr] = 1, [Monat], NULL) AS [Vormonat (-2) Vorjahr] , iif([Vormonat (-3) Vorjahr] = 1, [Monat], NULL) AS [Vormonat (-3) Vorjahr] , iif([letzte 6 Monate] = 1, [Monat], NULL) AS [letzte 6 Monate] , iif([letzte 12 Monate] = 1, [Monat], NULL) AS [letzte 12 Monate] , iif([per Vormonat] = 1, [Quartal], NULL) AS [per Vormonat] , iif([per Vormonat (-2)] = 1, [Quartal], NULL) AS [per Vormonat (-2)] , iif([per Vormonat (-3)] = 1, [Quartal], NULL) AS [per Vormonat (-3)] , iif([per Vormonat Vorjahr] = 1, [Quartal], NULL) AS [per Vormonat Vorjahr] , iif([per Vormonat (-2) Vorjahr] = 1, [Quartal], NULL) AS [per Vormonat (-2) Vorjahr] , iif([per Vormonat (-3) Vorjahr] = 1, [Quartal], NULL) AS [per Vormonat (-3) Vorjahr] , iif([Aktuelles Jahr] = 1, [Jahr], NULL) AS [Aktuelles Jahr] , iif([letztes Jahr] = 1, [Jahr], NULL) AS [letztes Jahr] , iif([3 Monate bis Vormonat (-2)] = 1, [Monat], NULL) AS [3 Monate bis Vormonat (-2)] , iif([Quartal (-1)] = 1, [Quartal], NULL) AS [Quartal (-1)] , iif([Quartal (-2)] = 1, [Quartal], NULL) AS [Quartal (-2)] , iif([Quartal (-3)] = 1, [Quartal], NULL) AS [Quartal (-3)] , iif([Quartal (-1) Vorjahr] = 1, [Quartal], NULL) AS [Quartal (-1) Vorjahr] , iif([Quartal (-2) Vorjahr] = 1, [Quartal], NULL) AS [Quartal (-2) Vorjahr] , iif([Quartal (-3) Vorjahr] = 1, [Quartal], NULL) AS [Quartal (-3) Vorjahr] , iif([Quartal (-1) kum.] = 1, [Quartal], NULL) AS [Quartal (-1) kum.] , iif([Quartal (-1) kum. Vorjahr] = 1, [Quartal], NULL) AS [Quartal (-1) kum. Vorjahr] , iif([letzte 11 Monate] = 1, [Monat], NULL) AS [letzte 11 Monate] , iif([letzte 13 Monate] = 1, [Monat], NULL) AS [letzte 13 Monate] , iif([letzte 3 Tage] = 1, [Tag], NULL) AS [letzte 3 Tage] , iif([letzte 7 Tage] = 1, [Tag], NULL) AS [letzte 7 Tage] , iif([letzte 14 Tage] = 1, [Tag], NULL) AS [letzte 14 Tage] , iif([letzte 30 Tage] = 1, [Tag], NULL) AS [letzte 30 Tage] FROM [kalender].[Kalender_Matrix]) , [Zeit_Pivot] AS (SELECT [Datum], [Zeit_Spezialkategorie], [Zeit_Ebene1] FROM (SELECT [Datum] , [Aktueller Tag] , [Gestern] , [M bisher] , [M bisher Vorjahr] , [M bisher / M bisher VJ] , [Voriger M bisher] , [M bisher gruppiert] , [Q bisher] , [Voriges Q bisher] , [Q bisher gruppiert] , [J bisher] , [Voriges J bisher] , [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_mit_Text]) [p] UNPIVOT ([Zeit_Ebene1] FOR [Zeit_Spezialkategorie] IN ([Aktueller Tag] ,[Gestern] ,[M bisher] ,[M bisher Vorjahr] ,[M bisher / M bisher VJ] ,[Voriger M bisher] ,[M bisher gruppiert] ,[Q bisher] ,[Voriges Q bisher] ,[Q bisher gruppiert] ,[J bisher] ,[Voriges J bisher] ,[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]) ) AS [unpvt] WHERE [Zeit_Ebene1] IS NOT NULL) , [Zeit_Pivot_fuer_Datum] AS (SELECT [T1].[Datum] , [T2].[Jahr] , [T2].[Quartal] , [T2].[Monat] , [T2].[Tag] , [T1].[Zeit_Spezialkategorie] , [T1].[Zeit_Ebene1] FROM [Zeit_Pivot] [T1] INNER JOIN [kalender].[Kalender_Tage] [T2] ON [T1].[Datum] = [T2].[Datum]) , [Zeit_Spezial_Ebene2] AS (SELECT [Datum] , [Jahr] , [Quartal] , [Monat] , [Tag] , [Zeit_Spezialkategorie] , [Zeit_Ebene1] , CASE WHEN [Zeit_Ebene1] = [Jahr] THEN [Quartal] WHEN [Zeit_Ebene1] = [Quartal] THEN [Monat] WHEN [Zeit_Ebene1] = [Monat] THEN [Tag] WHEN [Zeit_Spezialkategorie] IN ('J bisher gruppiert') THEN [Quartal] WHEN [Zeit_Spezialkategorie] IN ('Q bisher gruppiert') THEN [Monat] WHEN [Zeit_Spezialkategorie] IN ('M bisher / M bisher VJ', 'M bisher gruppiert') THEN [Tag] END AS [Zeit_Ebene2] FROM [Zeit_Pivot_fuer_Datum]) , [Zeit_Spezial_Ebene3] AS (SELECT [Datum] , [Jahr] , [Quartal] , [Monat] , [Tag] , [Zeit_Spezialkategorie] , [Zeit_Ebene1] , [Zeit_Ebene2] , CASE WHEN [Zeit_Ebene2] = [Quartal] THEN [Monat] WHEN [Zeit_Ebene2] = [Monat] THEN [Tag] END AS [Zeit_Ebene3] FROM [Zeit_Spezial_Ebene2]) , [Zeit_Spezial_Ebene4] AS (SELECT [Datum] , [Jahr] , [Quartal] , [Monat] , [Tag] , [Zeit_Spezialkategorie] , [Zeit_Ebene1] , [Zeit_Ebene2] , [Zeit_Ebene3] , CASE WHEN [Zeit_Ebene3] = [Monat] THEN [Tag] END AS [Zeit_Ebene4] FROM [Zeit_Spezial_Ebene3]) SELECT * FROM [Zeit_Spezial_Ebene4] GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO GO