vdZeitJQM SQL View

USE [dbHAPECDatawarehouseCPM4]
GO

/****** Object:  View [dbo].[vdZeitMonateJQM]    Script Date: 07.11.2018 15:44:54 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


ALTER VIEW [dbo].[vdZeitMonateJQM] as

SELECT

Monat,
MonatText,
MonatKurzBez,
JahrText+’/’+LEFT(MonatKurzBez,3) AS JahrMonatAlt,
MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2) AS MonatJahrKurzBez,
JahrText + ‘_’ + MonatText AS CCMonat,

COUNT(*) AS KalendertageAnzahl,

CASE
 WHEN  Monat = 1 THEN NULL
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat – 1 AS VARCHAR), 2)
END AS CCVormonat,

CASE
 WHEN  Monat = 12 THEN NULL
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat + 1 AS VARCHAR), 2)
END AS CCFolgemonat,

CASE
 WHEN  Monat = 1 THEN CAST(Jahr – 1 AS VARCHAR) + ‘_12’
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat – 1 AS VARCHAR), 2)
END AS CCVormonatKontinuierlich,
CASE
 WHEN  Monat = 12 THEN  CAST(Jahr + 1 AS VARCHAR) + ‘_01’
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat + 1 AS VARCHAR), 2)
END AS CCFolgemonatKontinuierlich,

CASE
 WHEN  Monat = 1 THEN CAST(Jahr – 1 AS VARCHAR) + ‘_11’
 WHEN  Monat = 2 THEN CAST(Jahr – 1 AS VARCHAR) + ‘_12’
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat – 2 AS VARCHAR), 2)
END AS CCVorVormonatKontinuierlich,

CASE
 WHEN  Monat = 12 THEN  CAST(Jahr + 1 AS VARCHAR) + ‘_02’
 WHEN  Monat = 11 THEN  CAST(Jahr + 1 AS VARCHAR) + ‘_01’
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat + 2 AS VARCHAR), 2)
END AS CCFolgeFolgemonatKontinuierlich,

CAST(Jahr – 1 AS VARCHAR) + ‘_’ + MonatText AS CCVorjahresmonat,
CAST(Jahr – 2 AS VARCHAR) + ‘_’ + MonatText AS CCVorVorjahresmonat,

CAST(Jahr + 1 AS VARCHAR) + ‘_’ + MonatText AS CCFolgejahresmonat,
CAST(Jahr + 2 AS VARCHAR) + ‘_’ + MonatText AS CCFolgeFolgejahresmonat,
QuartalKurzBez /*+  ‘ ‘ + RIGHT(JahrText, 2)*/ AS QuartalBez,
JahrText + ‘_’ + QuartalText + ‘_Q’ AS CCQuartal,

Jahr,
JahrText AS JahrBez,
JahrText AS CCJahr,

–Standardzeitdim (ohne Quartale)
‘Kalenderzeit’ AS Std_CCZeitkategorie,
‘Kalenderzeit’ AS Std_ZeitkategorieBez,
NULL AS Std_CCQuartal, — Platzhalter für Ebene Quartale

–Zeitdim mit Quartalen
‘JQM’ AS YQM_CCZeitkategorie,
‘Kalenderzeit mit Quartalen’ AS YQM_ZeitkategorieBez,

–aktueller Monat
CASE AktuellerMonat WHEN 1 THEN 1 ELSE NULL END AS IstAktuellerMonat,
CASE WHEN AktuellerMonat = 1 THEN JahrText + ‘_’ + MonatText ELSE NULL END AS AktMonat_CCMonat,
CASE WHEN AktuellerMonat = 1 THEN MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2) ELSE NULL END AS AktMonat_MonatJahrKurzBez,
CASE WHEN AktuellerMonat = 1 THEN JahrText + ‘_AktMonat’ ELSE NULL END AS AktMonat_CCJahr,
CASE WHEN AktuellerMonat = 1 THEN JahrText + ‘ (akt. Monat)’ ELSE NULL END AS AktMonat_JahrBez,
CASE WHEN AktuellerMonat = 1 THEN ‘AktMonat’ ELSE NULL END AS AktMonat_CCZeitkategorie,
CASE WHEN AktuellerMonat = 1 THEN ‘Aktueller Monat’ ELSE NULL END AS AktMonat_ZeitkategorieBez,

–aktuelles Jahr
CASE WHEN AktuellesJahr = 1 THEN JahrText + ‘_’ + MonatText ELSE NULL END AS AktJahr_CCMonat,
CASE WHEN AktuellesJahr = 1 THEN MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2) ELSE NULL END AS AktJahr_MonatJahrKurzBez,
CASE WHEN AktuellesJahr = 1 THEN JahrText ELSE NULL END AS AktJahr_CCJahr,
CASE WHEN AktuellesJahr = 1 THEN JahrText ELSE NULL END AS AktJahr_JahrBez, — Bez kann den Kalenderjahr entsprechen, da alle Monate enthalten
CASE WHEN AktuellesJahr = 1 THEN ‘AktJahr’ ELSE NULL END AS AktJahr_CCZeitkategorie,
CASE WHEN AktuellesJahr = 1 THEN ‘Aktuelles Jahr’ ELSE NULL END AS AktJahr_ZeitkategorieBez,

–aktuelles Jahr bisher
CASE WHEN lfdJahr = 1 THEN JahrText + ‘_’ + MonatText ELSE NULL END AS AktJahrBisher_CCMonat,
CASE WHEN lfdJahr = 1 THEN MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2) ELSE NULL END AS AktJahrBisher_MonatJahrKurzBez,
CASE WHEN lfdJahr = 1 THEN JahrText + ‘_AktJahrbisher’ ELSE NULL END AS AktJahrBisher_CCJahr,  — CC kann NICHT dem Kalenderjahr entsprechen, da nicht alle Monate enthalten
CASE WHEN lfdJahr = 1 THEN JahrText + ‘ (bisher)’ ELSE NULL END AS AktJahrBisher_JahrBez, — Bez kann NICHT dem Kalenderjahr entsprechen, da nicht alle Monate enthalten
CASE WHEN lfdJahr = 1 THEN ‘AktJahrBisher’ ELSE NULL END AS AktJahrBisher_CCZeitkategorie,
CASE WHEN lfdJahr = 1 THEN ‘Aktuelles Jahr bisher’ ELSE NULL END AS AktJahrBisher_ZeitkategorieBez,

/*
— Zeitkategorien für TM1
CASE WHEN Monat = 1 THEN NULL ELSE Jahr*100 + Monat-1 END AS CCVorperiode,
CASE WHEN Monat = 12 THEN NULL ELSE Jahr*100 + Monat+1 END AS CCFolgeperiode,
CASE WHEN Monat = 1 THEN (Jahr-1)*100 + 12 ELSE Jahr*100 + Monat-1 END AS CCVorperiodeKontinuierlich,
CASE WHEN Monat = 12 THEN Jahr*100 + Monat+1 ELSE (Jahr+1)*100 + 1 END AS CCFolgeperiodeKontinuierlich,
Jahr*100 + 1 AS CCErstePeriode,
Jahr*100 + 12 AS CCLetztePeriode,
YEAR(GETDATE())*100 + MONTH(GETDATE()) AS CCAktuellePeriode*/

— ScCh, 12.06.15: weitere Spezialkategorien hier erzeugen:
— aktueller Monat VJ

— aktuelles Jahr VJ

— aktueller Monat VJ bisher

— aktuelles Jahr VJ bisher

— Vormonat bisher

–Monat bisher

–Erweiterung um Flags
AktuellerMonat as AktuellerMonatFlag,
AktuellesQuartal as AktuellesQuartalFlag,
AktuellesJahr as AktuellesJahrFlag,
VorMonat as VormonatFlag,
VorQuartal as VorquartalFlag,
VorJahr as VorjahrFlag,
VVJ as VVJFlag,
QuartalVVJ as QuartalVVJFlag,
MonatVVJ as MonatVVJFlag,

— Zeitkategorien für TM1
— Monat
CASE WHEN Monat <> 1 THEN DATENAME(m,DATEADD(mm, Monat-1, 0)) + ‘ ‘ + JahrText END AS CCVorperiode,
CASE WHEN Monat <> 12 THEN DATENAME(m,DATEADD(mm, Monat, 0)) + ‘ ‘ + JahrText END AS CCFolgeperiode,
DATEDIFF(day, ‘1960-01-01’, DATEFROMPARTS(Jahr, Monat, 1)) AS MonatStartdatumTM1,
DATEDIFF(day, ‘1960-01-01’, EOMONTH(DATEFROMPARTS(Jahr, Monat, 1))) AS MonatEnddatumTM1,
— Quartal
DATEDIFF(day, ‘1960-01-01’, DATEFROMPARTS(Jahr, Quartal*3-2, 1)) AS QuartalStartdatumTM1,
DATEDIFF(day, ‘1960-01-01’, EOMONTH(DATEFROMPARTS(Jahr, Quartal*3, 1))) AS QuartalEnddatumTM1,
— Jahr
DATEDIFF(day, ‘1960-01-01’, DATEFROMPARTS(Jahr, 1, 1)) AS JahrStartdatumTM1,
DATEDIFF(day, ‘1960-01-01’, EOMONTH(DATEFROMPARTS(Jahr, 12, 1))) AS JahrEnddatumTM1,
— Gesamter Zeitraum
DATEDIFF(day, ‘1960-01-01’, DATEFROMPARTS(2009, 1, 1)) AS GesamtStartdatumTM1,
DATEDIFF(day, ‘1960-01-01’, EOMONTH(DATEFROMPARTS(YEAR(GETDATE())+1, 12, 1))) AS GesamtEnddatumTM1,

CASE WHEN Jahr BETWEEN year(getdate())-1 AND year(getdate())+1 THEN 1 ELSE 0 END AS AktuelleJahre

FROM        
dZeit

WHERE
Jahr BETWEEN 2006 AND YEAR(GETDATE())+1


GROUP BY
Monat,
MonatText,
MonatKurzBez,
JahrText+’/’+LEFT(MonatKurzBez,3),
MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2),– AS MonatJahrKurzBez,
JahrText + ‘_’ + MonatText,– AS CCMonat,

CASE
 WHEN  Monat = 1 THEN NULL
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat – 1 AS VARCHAR), 2)
END,– AS CCVormonat,
CASE
 WHEN  Monat = 12 THEN NULL
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat + 1 AS VARCHAR), 2)
END,– AS CCFolgemonat,

CASE
 WHEN  Monat = 1 THEN CAST(Jahr – 1 AS VARCHAR) + ‘_12’
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat – 1 AS VARCHAR), 2)
END, — AS CCVormonatKontinuierlich,
CASE
 WHEN  Monat = 12 THEN  CAST(Jahr + 1 AS VARCHAR) + ‘_01’
 ELSE  JahrText + ‘_’ + RIGHT(’00’ + CAST(Monat + 1 AS VARCHAR), 2)
END, — AS CCFolgemonatKontinuierlich,

CAST(Jahr-1 AS VARCHAr) + ‘_’ + MonatText,– AS CCVorjahresmonat,
CAST(Jahr+1 AS VARCHAr) + ‘_’ + MonatText,– AS CCFolgejahresmonat,

QuartalKurzBez/* +  ‘ ‘ + RIGHT(JahrText, 2)*/,– AS QuartalBez,
JahrText + ‘_’ + QuartalText + ‘_Q’,– AS CCQuartal,

Jahr,
JahrText,– AS JahrBez,

–aktueller Monat
CASE AktuellerMonat WHEN 1 THEN 1 ELSE NULL END,– AS IstAktuellerMonat,
CASE WHEN AktuellerMonat = 1 THEN JahrText + ‘_’ + MonatText ELSE NULL END,– AS AktMonat_CCMonat,
CASE WHEN AktuellerMonat = 1 THEN MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2) ELSE NULL END,– AS AktMonat_MonatJahrKurzBez,
CASE WHEN AktuellerMonat = 1 THEN JahrText + ‘_AktMonat’ ELSE NULL END,– AS AktMonat_CCJahr,
CASE WHEN AktuellerMonat = 1 THEN JahrText + ‘ (akt. Monat)’ ELSE NULL END,– AS AktMonat_JahrBez,
CASE WHEN AktuellerMonat = 1 THEN ‘AktMonat’ ELSE NULL END,– AS AktMonat_CCZeitkategorie,
CASE WHEN AktuellerMonat = 1 THEN ‘Aktueller Monat’ ELSE NULL END,– AS AktMonat_ZeitkategorieBez,

–aktuelles Jahr
CASE WHEN AktuellesJahr = 1 THEN JahrText + ‘_’ + MonatText ELSE NULL END,– AS AktJahr_CCMonat,
CASE WHEN AktuellesJahr = 1 THEN MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2) ELSE NULL END,– AS AktJahr_MonatJahrKurzBez,
CASE WHEN AktuellesJahr = 1 THEN JahrText ELSE NULL END,– AS AktJahr_CCJahr,
CASE WHEN AktuellesJahr = 1 THEN JahrText ELSE NULL END,– AS AktJahr_JahrBez, — Bez kann den Kalenderjahr entsprechen, da alle Monate enthalten
CASE WHEN AktuellesJahr = 1 THEN ‘AktJahr’ ELSE NULL END,– AS AktJahr_CCZeitkategorie,
CASE WHEN AktuellesJahr = 1 THEN ‘Aktuelles Jahr’ ELSE NULL END,– AS AktJahr_ZeitkategorieBez,

–aktuelles Jahr bisher
CASE WHEN lfdJahr = 1 THEN JahrText + ‘_’ + MonatText ELSE NULL END,– AS AktJahrBisher_CCMonat,
CASE WHEN lfdJahr = 1 THEN MonatKurzBez + ‘ ‘ + RIGHT(JahrText, 2) ELSE NULL END,– AS AktJahrBisher_MonatJahrKurzBez,
CASE WHEN lfdJahr = 1 THEN JahrText + ‘_AktJahrbisher’ ELSE NULL END,– AS AktJahrBisher_CCJahr,  — CC kann NICHT dem Kalenderjahr entsprechen, da nicht alle Monate enthalten
CASE WHEN lfdJahr = 1 THEN JahrText + ‘ (bisher)’ ELSE NULL END,– AS AktJahrBisher_JahrBez, — Bez kann NICHT dem Kalenderjahr entsprechen, da nicht alle Monate enthalten
CASE WHEN lfdJahr = 1 THEN ‘AktJahrBisher’ ELSE NULL END,– AS AktJahrBisher_CCZeitkategorie,
CASE WHEN lfdJahr = 1 THEN ‘Aktuelles Jahr bisher’ ELSE NULL END,

AktuellerMonat,
AktuellesQuartal,
AktuellesJahr,
VorMonat,
VorQuartal,
VorJahr,
VVJ,
QuartalVVJ,
MonatVVJ,
— Zeitkategorien für TM1
— Monat
CASE WHEN Monat <> 1 THEN DATENAME(m,DATEADD(mm, Monat-1, 0)) + ‘ ‘ + JahrText END,
CASE WHEN Monat <> 12 THEN DATENAME(m,DATEADD(mm, Monat, 0)) + ‘ ‘ + JahrText END,
DATEDIFF(day, ‘1960-01-01’, DATEFROMPARTS(Jahr, Monat, 1)) ,
DATEDIFF(day, ‘1960-01-01’, EOMONTH(DATEFROMPARTS(Jahr, Monat, 1))),
— Quartal
DATEDIFF(day, ‘1960-01-01’, DATEFROMPARTS(Jahr, Quartal*3-2, 1)),
DATEDIFF(day, ‘1960-01-01’, EOMONTH(DATEFROMPARTS(Jahr, Quartal*3, 1))) ,
— Jahr
DATEDIFF(day, ‘1960-01-01’, DATEFROMPARTS(Jahr, 1, 1)) ,
DATEDIFF(day, ‘1960-01-01’, EOMONTH(DATEFROMPARTS(Jahr, 12, 1))

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar