Files
co_app/app/data/sql/ergebnis_kpi.sql
2026-02-23 08:11:38 +01:00

93 lines
3.6 KiB
SQL

/*******************************************************************************************
* Basis-Daten aus der Kostenrechnung
*******************************************************************************************/
with basis as(
Select
p.geschaeftsjahr as jahr,
p.geschaeftsperiode as monat,
p.periode_key,
b.zgrp1,
b.zgrp2,
b.zgrp3,
b.bezeichnung as Bereich,
ko.kostenobjekt,
ko.bezeichnung as obj_bezeichnung,
ko.obj_text,
ko.objektgruppe,
ko.objekttyp,
ko.verantwortlicher,
ks.co_koa_grp,
ks.co_grp_bez,
ks.co_grp_text,
ks.kostenart,
ks.koa_text,
coalesce(ws.uml_kz,'') as uml_kz,
coalesce(ws.zgrp_1_entlastung, '') as zgrp1_entlastung,
coalesce(ws.wert * -1, 0) as wert,
coalesce(ws.wert_plan * -1, 0) as wert_plan,
0 as wert_forecast
from
co_dw.bi.fact_wertsummen ws
left join co_dw.bi.dim_periode p
on ws.periode_key = p.periode_key
left join co_dw.bi.dim_kostenobjekt ko
on ws.objekt_key = ko.objekt_key
left join co_dw.bi.dim_koastruktur ks
on ws.kostenart = ks.kostenart
left join co_dw.bi.dim_bereich b
on ko.bereich_key = b.bereich_key
where
ks.co_koa_grp_01 = 'GMN001'
and ko.objektgruppe in ('HKST', 'VKST', 'KTRG', 'KtrBereich', 'KtrMNr')
and p.geschaeftsperiode < 14
and (p.geschaeftsjahr = :jahr or p.geschaeftsjahr = :jahr -1)
),
/*******************************************************************************************
* Gesamtergebnis
*******************************************************************************************/
ergebnis_gesamt as (
select
zgrp1,
zgrp2,
zgrp3,
kostenobjekt,
obj_bezeichnung,
obj_text,
co_koa_grp,
co_grp_bez,
co_grp_text,
'Ergebnis' as main_kpi,
'Gesamtergebnis' as kpi,
round(sum(case when jahr = :jahr-1 then wert else 0 end),0) as vor_jahr,
round(sum(case when jahr = :jahr-1 and monat <= :monat then wert else 0 end),0) as vor_jahr_bis_monat,
round(sum(case when jahr = :jahr-1 and monat = :monat then wert else 0 end),0) as vor_jahr_monat,
round(sum(case when jahr = :jahr then wert else 0 end),0) as akt_jahr,
round(sum(case when jahr = :jahr and monat <= :monat then wert else 0 end),0) as akt_jahr_bis_monat,
round(sum(case when jahr = :jahr and monat = :monat then wert else 0 end),0) as akt_jahr_monat,
round(sum(case when jahr = :jahr then wert_plan else 0 end),0) as plan_akt_jahr,
round(sum(case when jahr = :jahr and monat <= :monat then wert_plan else 0 end),0) as plan_akt_jahr_bis_monat,
round(sum(case when jahr = :jahr and monat = :monat then wert_plan else 0 end),0) as plan_akt_jahr_monat,
round(sum(case when jahr = :jahr then wert_forecast else 0 end),0) as forecast_akt_jahr,
round(sum(case when jahr = :jahr and monat <= :monat then wert_forecast else 0 end),0) as forecast_akt_jahr_bis_monat,
round(sum(case when jahr = :jahr and monat = :monat then wert_forecast else 0 end),0) as forecast_akt_jahr_monat
from
basis
group by
zgrp1,
zgrp2,
zgrp3,
kostenobjekt,
obj_bezeichnung,
obj_text,
co_koa_grp,
co_grp_bez,
co_grp_text
)
select * from ergebnis_gesamt
select * from co_dw.bi.Fact_Wertsummen