Del via


Om funktioner for overordnede/underordnede hierarkier i DAX

DAX indeholder fem funktioner, der kan hjælpe brugerne med at administrere data, der præsenteres som et overordnet/underordnet-hierarki i deres modeller. Med disse funktioner kan en bruger hente hele afstamningen af overordnede rækker, hvor mange niveauer har afstamningen til den øverste overordnede, hvem er de overordnede n-niveauer over den aktuelle række, hvem er n-underordnet fra toppen af det aktuelle rækkehierarki og er en bestemt overordnet overordnet i det aktuelle rækkehierarki?

Overordnede/underordnede funktioner i DAX

Følgende tabel indeholder et Parent-Child hierarki for kolonnerne: EmployeeKey- og ParentEmployeeKey-, der bruges i alle funktionseksemplerne.

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

I ovenstående tabel kan du se, at medarbejder 112 ikke har defineret nogen overordnet, medarbejder 14 har medarbejder 112 som chef (ParentEmployeeKey), medarbejder 3 har medarbejder 14 som leder, og medarbejdere 11, 13 og 162 har medarbejder 3 som leder. Ovenstående hjælper med at forstå, at medarbejder 112 ikke har nogen leder over hende/ham, og at hun/han er den øverste leder for alle de medarbejdere, der vises her; medarbejder 3 rapporterer også til medarbejder 14 og medarbejdere 11, 13, 162 rapporter til 3.

I følgende tabel vises de tilgængelige funktioner, en kort beskrivelse af funktionen og et eksempel på funktionen over de samme data, der er vist ovenfor.

PATH funktion – returnerer en afgrænset tekst med id'erne for alle de overordnede til den aktuelle række, startende med den ældste eller øverste indtil den aktuelle.

EmployeeKey ParentEmployeeKey Sti
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

PATHLENGTH funktion – returnerer antallet af niveauer i en given PATH(), der starter ved det aktuelle niveau indtil det ældste eller øverste overordnede niveau. I følgende eksempelkolonne er PathLength defineret som '= PATHLENGTH([Path])'. eksemplet indeholder alle data fra Path()-eksemplet for at hjælpe med at forstå, hvordan denne funktion fungerer.

EmployeeKey ParentEmployeeKey Sti Stilængde
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

PATHITEM funktion – returnerer elementet på den angivne placering fra et PATH() som resultat, hvor der tælles fra venstre mod højre. I følgende eksempelkolonne er PathItem – 4. fra venstre defineret som '= PATHITEM([Path], 4)'. I dette eksempel returneres EmployeKey på fjerde placering i path-strengen fra venstre ved hjælp af de samme eksempeldata fra Path()-eksemplet.

EmployeeKey ParentEmployeeKey Sti PathItem – 4. fra venstre
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 funktion – returnerer elementet ved position fra en PATH() som funktionsresultatet og tæller bagud fra højre mod venstre. I følgende eksempelkolonne er PathItemReverse – 3. fra højre defineret som '= PATHITEMREVERSE([Path], 3)'; I dette eksempel returneres EmployeKey på tredje placering i path-strengen fra højre ved hjælp af de samme eksempeldata fra Path()-eksemplet.

EmployeeKey ParentEmployeeKey Sti PathItemReverse – 3. fra højre
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

PATHCONTAINS funktion – returnerer TRUE, hvis den angivne item findes i den angivne path. I følgende eksempelkolonne PathContains – er medarbejder 162 defineret som '= PATHCONTAINS([Path], "162")'; I dette eksempel returneres TRUE, hvis den angivne sti indeholder medarbejder 162. I dette eksempel bruges resultaterne fra Path()-eksemplet ovenfor.

EmployeeKey ParentEmployeeKey Sti PathContains - medarbejder 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