Jak již bylo uvedeno v článku
Oracle BI Metadata repository – IV. Tvorba vlastních ukazatelů, existují dva způsoby jak definovat vlastní výpočty (ukazatele), a to:
- Výpočet na základě již existujících logických sloupců (postup viz. článek výše)
- Výpočet na základě fyzických sloupců (postup je uveden níže)
Není jedno, který z výše uvedených způsobů použijete. Pro každý z nich je generován jiný fyzický SQL dotaz, a to v určitých případech (viz. níže) může mít vliv na správnost / nesprávnost výsledků a dokonce i na výkon samotného dotazu:
- U výpočtů na základě již existujících logických sloupců se nejprve aplikují agregační funkce (ty, které jsou nastaveny u logických sloupců ze kterých se vychází) a až poté se provede samotný výpočet
- U výpočtů na základě fyzických sloupců se nejprve provede výpočet a až poté se aplikuje agregační funkce

Příklad, kdy je nutné použít výpočet na základě fyzických sloupců:Pro správný výpočet celkových tržeb se pro každý řádek nejprve vynásobí cena za kus (Unit Price) počtem prodaných kusů (Units Sold) a poté se teprve aplikuje agregační funkce SUM().

V případě použití
výpočtu na základě již existujících logických sloupců,
by byl výpočet celkových tržeb chybný. A to proto, že se nejprve aplikují agregační funkce SUM()
„Unit price“ je 500 + 400 + 300 = 1.200
„Units sold“ je 2 + 3 + 4 = 9
a až poté se provede vlastní výpočet, který je v tomto případě chybný: 1.200 x 9 = 10.800
Jak nadefinovat výpočet na základě fyzických sloupců1. Vyberte faktovou tabulku > pravé tlačítko myši > New Object > Logical Column ...

2. Pojmenujte ukazatel a zvolte OK.

3. Vyberte fyzický zdroj Vaší logické tabulky a zvolte „Properties...“

4. Vyberte záložku Column Mapping (zde je vidět, jak jsou mapovány jednotlivé logické sloupce z Business Modelu na Fyzickou vrstvu) > vyberte Váš nový ukazatel a spusťte Expression Builder (stiskněte ...)

5. V Expression Builderu nadefinujte vlastní výpočet nad fyzickými sloupci a zvolte OK

6. Výpočet je zobrazen v mapování mezi Business Modelem a Fyzickou vrstvou

7. Nakonec nastavte agregační funkci pro Váš nový ukazatel a přesuňte jej do Prezentační vrstvy

Erik Eckhardt.