SQL: isol. und kummulierte Werte ermitteln
Um in Reports isolierte und kummulierte Werte parallel anzuzeigen, läßt sich die analytische Funktion von Oracle nutzen:
select QUARTAL,
PK_ID,
Anz_AKT,
sum(Anz_AKT) over (partition by PK_ID, ceil(QUARTAL/10) order by QUARTAL) Anz_KUM
from
(
select F.PK_ID,
F.QUARTAL,
sum(F.ANZ_FAELLE) Anz_AKT
from FACT_TBL F
where F.PK_ID in ('123')
group by F.QUARTAL, F.PK_ID,
);
Der innere select liefert die je Quartal zusammengefassten Werte, die im äußeren select innerhalb des Jahres (ceil(quartal/10)) aufsummiert werden.
Das Ergebnis ist z.B. folgende Liste:
Innerhalb eines jeden Jahres werden die Werte aufsummiert.
So können mit einer Abfrage elegant isol. und kum. Werte angezeigt werden.
select QUARTAL,
PK_ID,
Anz_AKT,
sum(Anz_AKT) over (partition by PK_ID, ceil(QUARTAL/10) order by QUARTAL) Anz_KUM
from
(
select F.PK_ID,
F.QUARTAL,
sum(F.ANZ_FAELLE) Anz_AKT
from FACT_TBL F
where F.PK_ID in ('123')
group by F.QUARTAL, F.PK_ID,
);
Der innere select liefert die je Quartal zusammengefassten Werte, die im äußeren select innerhalb des Jahres (ceil(quartal/10)) aufsummiert werden.
Das Ergebnis ist z.B. folgende Liste:
QUARTAL | PK_ID | ANZ_AKT | ANZ_KUM |
---|---|---|---|
20021 | 6410220 | 9810 | 9810 |
20061 | 6410220 | 1719 | 1719 |
20062 | 6410220 | 3819 | 5538 |
20063 | 6410220 | 3827 | 9365 |
20064 | 6410220 | 4233 | 13598 |
20081 | 6410220 | 1168 | 1168 |
Innerhalb eines jeden Jahres werden die Werte aufsummiert.
So können mit einer Abfrage elegant isol. und kum. Werte angezeigt werden.
Kommentare
Kommentar veröffentlichen