čtvrtek 10. září 2009

Dynamický ukazatel Past-to-Date

Tradiční ukazatele Year-to-Date, Quarter-to-Date , Month-to-Date asi nemusím představovat. Mohou nastat situace, které vyžadují méně tradiční variaci to-Date, kterou můžeme pracovně nazvat Past-to-Date, tedy součet všech hodnot od minulosti až do vybraného data.

Mějme faktovou tabulku tykající se bankovních úvěrů, kde jedním z ukazatelů je i výše úvěru – kladná pokud transakce zvyšuje výši úvěru o danou částku, záporná když snižuje a nulová pokud je bez vlivu na výši úvěru.

Transakce, z hlediska dimenzí, které nás zajímají, jsou zaznamenávány denně na úrovni jednotlivých úvěrových smluv.

Požadovaný report nad touto tabulkou by měl zobrazovat změnu sumy výše úvěru za jednotlivé roky (jak daný rok přispěl k celkové sumě výše úvěrů) a současně také absolutní výši všech poskytnutých úvěrů až do konce daného roku včetně (suma všech změn výší úvěrů od minulosti až do konce daného roku).



Dále je požadována možnost drillování až na úroveň jednotlivých dnů. Důležité pro to je, aby Výše úvěru živých smluv byla počítána vždy od nekonečné minulosti – to diskvalifikuje funkce typu RSUM, které počítají pouze nad vráceným výsledkem.



Elegantním řešením je využití funkce toDate doprovázenou úpravou časové dimenze a její hierarchie.

  1. Do časové dimenze je potřeba doplnit nový sloupec, který třeba nazveme VSECHNY_DATUMY, a naplníme ho stejnou hodnotou ve všech řádcích.
  2. Upravíme hierarchii časové dimenze tak, že přidáme nový level mezi Grand Total a Rok a jako klíč mu dáme sloupec VSECHNY_DATUMY.


  3. Vytvoříme v metadatech ukazatel Výše úvěru všech smluv pomocí funkce toDate a jako parametr zadáme level Dummy.

Výsledný ukazatel se chová tak, jak jsme u toDate zvyklí. Umožňuje svobodně drilovat jednotlivými úrovněmi hierarchie časové dimenze, aniž by bylo nutné námi vytvořený ukazatel nějak upravovat.


Oleg Svatoš (Teura)

1 komentář:

Anonymní řekl(a)...

Stejný postup lze zvolit v případě jakékoli dimenze - nejenom pouze časové - tozn. vytvořit např. sloupec "Všichni zakaznici" a naplnit jej hodnotou 'Všichni zákaznici celkem'. Není nutné tento sloupec vytvářet ve zdroji, ale stačí v business modelu.