- 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.
Žádné komentáře:
Okomentovat