Udostępnij przez


Opis funkcji do obsługi hierarchii nadrzędny-podrzędny w języku DAX

Język DAX oferuje pięć funkcji pomagających użytkownikom w zarządzaniu danymi przedstawionymi w modelu w postaci hierarchii nadrzędny-podrzędny. Za pomocą tych funkcji użytkownik może uzyskać całą linię elementów nadrzędnych wiersza oraz liczbę poziomów do elementu nadrzędnego najwyższego poziomu, ustalić element nadrzędny n poziomów powyżej bieżącego wiersza, ustalić element znajdujący się n poziomów poniżej elementu najwyższego poziomu w bieżącej hierarchii wierszy oraz ustalić element nadrzędny pewnego elementu nadrzędnego w bieżącej hierarchii wierszy.

Funkcje relacji nadrzędny-podrzędny w języku DAX

W poniższej tabeli znajduje się hierarchia nadrzędny-podrzędny kolumn EmployeeKey i ParentEmployeeKey, która jest używana we wszystkich przykładach użycia tych funkcji.

EmployeeKey

ParentEmployeeKey

112

14

112

3

14

11

3

13

3

162

3

117

162

221

162

81

162

W powyższej tabeli widać, że pracownik 112 nie ma zdefiniowanego elementu nadrzędnego, kierownikiem pracownika 14 jest pracownik 112 (ParentEmployeeKey), kierownikiem pracownika 3 jest pracownik 14, a kierownikiem pracowników 11, 13 i 162 jest pracownik 3. Powyższa tabela pomaga zrozumieć, że pracownik 112 nie ma kierownika nad sobą i jest kierownikiem najwyższego poziomu dla wszystkich pokazanych tutaj pracowników; ponadto pracownik 3 podlega pracownikowi 14, a pracownicy 11, 13, 162 podlegają pracownikowi 3.

W poniższej tabeli przedstawiono dostępne funkcje, ich krótkie opisy oraz przykłady użycia tych w funkcji z pokazanymi powyżej danymi.

Funkcja

Opis/Przykład

Funkcja PATH (język DAX)

Zwraca rozdzielany tekst zawierający identyfikatory wszystkich elementów nadrzędnych bieżącego wiersza, rozpoczynając od najstarszego lub najwyższego i kontynuując do bieżącego.

W tym przykładzie kolumna Path jest definiowana jako =PATH(EmployeeKey, ParentEmployeeKey)'

EmployeeKey

ParentEmployeeKey

Path

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

Funkcja PATHLENGTH (język DAX)

Zwraca liczbę poziomów w wyniku działania funkcji PATH(), rozpoczynając od bieżącego poziomu, a kończąc na najwyższym (najstarszym) poziomie.

W poniższym przykładzie kolumna PathLength jest definiowana jako =PATHLENGTH([Path]); ten przykład zawiera wszystkie dane z przykładu dotyczącego funkcji Path(), ponieważ ułatwi to zrozumienie zasady działania tej funkcji.

EmployeeKey

ParentEmployeeKey

Path

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

Funkcja PATHITEM (język DAX)

Zwraca element znajdujący się na określonej pozycji w wyniku obliczenia funkcji PATH(), przy czym zliczanie odbywa się od lewej do prawej.

W poniższym przykładzie kolumna PathItem — czwarty od lewej jest definiowana jako =PATHITEM([Path], 4); w tym przykładzie zwracana jest wartość EmployeKey znajdująca się na czwartej pozycji od lewej w ciągu Path. Używane są te same dane, co w przykładzie dotyczącym funkcji Path().

EmployeeKey

ParentEmployeeKey

Path

PathItem — czwarty od lewej

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

Funkcja PATHITEMREVERSE (język DAX)

Zwraca element znajdujący się pozycji position w wyniku obliczenia funkcji PATH(), przy czym zliczanie odbywa się od prawej do lewej.

W poniższym przykładzie kolumna PathItemReverse — trzeci od prawej jest definiowana jako =PATHITEMREVERSE([Path], 3); w tym przykładzie zwracana jest wartość EmployeKey znajdująca się na trzeciej pozycji od prawej w ciągu Path. Używane są te same dane, co w przykładzie dotyczącym funkcji Path().

EmployeeKey

ParentEmployeeKey

Path

PathItemReverse — trzeci od prawej

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

Funkcja PATHCONTAINS (język DAX)

Zwraca wartość TRUE, jeśli określony element item istnieje w określonej ścieżce path.

W poniższym przykładzie kolumna PathContains — pracownik 162 jest definiowana jako =PATHCONTAINS([Path], "162"); w tym przykładzie jest zwracana wartość TRUE, jeśli dana ścieżka zawiera pracownika 162. W tym przykładzie są używane wyniki z powyższego przykładu dotyczącego funkcji Path().

EmployeeKey

ParentEmployeeKey

Path

PathContains — pracownik 162

112

112

Fałsz

14

112

112|14

Fałsz

3

14

112|14|3

Fałsz

11

3

112|14|3|11

Fałsz

13

3

112|14|3|13

Fałsz

162

3

112|14|3|162

Prawda

117

162

112|14|3|162|117

Prawda

PrzestrogaPrzestroga

Aparat analizy w pamięci xVelocity (VertiPaq) w usługach SQL Server 2012 Analysis Services nie obsługuje definicji hierarchii nadrzędny-podrzędny, ale język DAX oferuje zestaw funkcji umożliwiających użytkownikom eksplorowanie hierarchii nadrzędny-podrzędny i używanie tych hierarchii w formułach.