Principy funkcí pro hierarchie nadřazených a podřízených v jazyce DAX

JAZYK DAX poskytuje pět funkcí, které uživatelům pomáhají spravovat data, která jsou ve svých modelech prezentována jako hierarchie nadřazených a podřízených. Díky této funkci může uživatel získat celou rodokmen nadřazeného řádku, kolik úrovní má rodokmen nejvyšší nadřazené úrovně, který je nadřazený n-úrovní nad aktuálním řádkem, který je n-následníkem z horní části aktuální hierarchie řádků a je určitým nadřazeným objektem v aktuální hierarchii řádků?

Funkce nadřazenosti a podřízenosti v jazyce DAX

Následující tabulka obsahuje hierarchii Parent-Child ve sloupcích: EmployeeKey a ParentEmployeeKey , která se používá ve všech příkladech funkcí.

EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162

V tabulce výše vidíte, že zaměstnanec 112 nemá definovaný žádný rodič, zaměstnanec 14 má zaměstnance 112 jako manažer (ParentEmployeeKey), zaměstnanec 3 má zaměstnance 14 jako vedoucí a zaměstnanci 11, 13 a 162 mají zaměstnance 3 jako vedoucí. Výše uvedené informace pomáhají pochopit, že zaměstnanec 112 nemá nad sebou vedoucího a ona/on je nejvyšší manažer pro všechny zaměstnance, kteří jsou zde uvedeni; zaměstnanci 3 také hlásí zaměstnancům 14 a zaměstnancům 11, 13, 162 zprávy na 3.

Následující tabulka obsahuje dostupné funkce, stručný popis funkce a příklad funkce nad stejnými daty uvedenými výše.

Funkce PATH – Vrátí text s oddělovači s identifikátory všech nadřazených prvků aktuálního řádku, počínaje nejstarším nebo nejvyšším až aktuálním řádkem.

EmployeeKey ParentEmployeeKey Cesta
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
117 162 112|14|3|162|117
221 162 112|14|3|162|221
81 162 112|14|3|162|81

Funkce PATHLENGTH – vrátí počet úrovní v dané cestě PATH(), počínaje aktuální úrovní až do nejstarší nebo nejvyšší nadřazené úrovně. V následujícím příkladu je sloupec PathLength definován jako '= PATHLENGTH([Path])' ; příklad obsahuje všechna data z příkladu Path(), aby pomohl pochopit, jak tato funkce funguje.

EmployeeKey ParentEmployeeKey Cesta PathLength
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
117 162 112|14|3|162|117 5
221 162 112|14|3|162|221 5
81 162 112|14|3|162|81 5

Funkce PATHITEM – vrátí položku na zadané pozici z výsledku podobného PATH(), počítá se zleva doprava. V následujícím příkladu sloupec PathItem - 4. zleva je definován jako '= PATHITEM([Path], 4)'; tento příklad vrátí EmployeKey na čtvrté pozici v řetězci Path zleva pomocí stejných ukázkových dat z příkladu Path().

EmployeeKey ParentEmployeeKey Cesta PathItem – 4. zleva
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
162 3 112|14|3|162 162
117 162 112|14|3|162|117 162
221 162 112|14|3|162|221 162
81 162 112|14|3|162|81 162

PATHITEMREVERSE – vrátí položku na pozici z výsledku funkce PATH(), jako je výsledek funkce, počítá se zpět zprava doleva.
V následujícím příkladu sloupec PathItemReverse – třetí zprava je definován jako '= PATHITEMREVERSE([Path], 3)'; tento příklad vrátí EmployeKey na třetí pozici v řetězci Path zprava pomocí stejných ukázkových dat z příkladu Path().

EmployeeKey ParentEmployeeKey Cesta PathItemReverse – třetí zprava
112 112
14 112 112|14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
117 162 112|14|3|162|117 3
221 162 112|14|3|162|221 3
81 162 112|14|3|162|81 3

Funkce PATHCONTAINS – vrátí hodnotu TRUE , pokud zadaná položka existuje v zadané cestě. V následujícím příkladu sloupec PathContains - employee 162 je definován jako '= PATHCONTAINS([Path], "162")'; tento příklad vrátí hodnotu PRAVDA , pokud daná cesta obsahuje zaměstnance 162. Tento příklad používá výsledky z výše uvedeného příkladu Path().

EmployeeKey ParentEmployeeKey Cesta PathContains – zaměstnanec 162
112 112 FALSE
14 112 112|14 FALSE
3 14 112|14|3 FALSE
11 3 112|14|3|11 FALSE
13 3 112|14|3|13 FALSE
162 3 112|14|3|162 TRUE
117 162 112|14|3|162|117 TRUE