Z repository dostupného po nainstalování poslední verze (10.1.3.4.1) Oracle BI Enterprise Edition jsem použil dva sloupce:
Cílová oblast: Sample Sales,
Tabulka: F2 Units – 23 Dimension Total, Sloupec: 8-66 Total # or Orders (Cnt Dt for All Orders)
Tabulka: D2 Market, Sloupec: M01 Market
Zároveň pro přehlednost jsem nastavil filtr na poslední sloupec s jedinou hodnotou „Market 5“.
Výsledná tabulka po přejmenování sloupců vypadala takto:
Faktový sloupec jsem v dotazu zopakoval a nastavil pro něj hodnotu 1/100:
Výsledek byl následující:
Zkusil jsem přidat ještě jednou stejný sloupec do sestavy a použít matematickou funkci pro zaokrouhlování s následným dělením stem:
Funkce ROUND si zřejmě alokuje pro svůj výpočet paměťový prostor pro datový typ, který zvládá desetinné operace (např. FLOAT nebo REAL) a proto výsledek odpovídal mému očekávání:
Petr Zeman (softwarový konzultant OKsystem)
1 komentář:
Na Váš "problém" existuje již poměrně dlouhou dobu jednoduchý "workaround", který vůbece nevyžaduje použití fce ROUND. Řešení je následující poměrová metrika, kde čitatel i jmenovatel jsou typu INTEGER se vytváří (interně se "přecastuje" na datovy typ s desetinnou casti) následujícím způsobem :
1.0* CITATEL/JMENOVATEL
Vynasobenim vysledku literalem 1.0 docilite interni prevod vysledku do spavneho datoveho typu. Ve vasem pripade tedy staci provest vydeleni literalem 100.0, namisto Vami pouzivaneho 100. Myslim, ze je to jednodussi a elegantnejsi nez pouziti fce ROUND.
Michal Zima
BI/DWH Architekt
Teura s.r.o.
Okomentovat