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 visse overordnede i det aktuelle rækkehierarki?

Overordnede/underordnede funktioner i DAX

Følgende tabel indeholder et overordnet-underordnet-hierarki i kolonnerne: EmployeeKey og ParentEmployeeKey , der bruges i alle funktionseksempler.

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.

Funktionen PATH – returnerer en afgrænset tekst med id'erne for alle 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

Funktionen PATHLENGTH – 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

Funktionen PATHITEM – returnerer elementet på den angivne placering fra en PATH() som resultat, der tæller 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

Funktionen PATHITEMREVERSE – returnerer elementet på positionen 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

Funktionen PATHCONTAINS – returnerer TRUE , hvis det angivne element findes i den angivne sti. 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 SANDT
117 162 112|14|3|162|117 SANDT