Condividi tramite


Informazioni sulle funzioni per le gerarchie padre-figlio in DAX

DAX fornisce cinque funzioni che consentono agli utenti di gestire i dati presentati come gerarchia padre-figlio nei modelli. Con queste funzioni un utente può ottenere l'intera derivazione dei padre di una riga, quanti livelli hanno la derivazione al padre superiore, chi è il livello n padre sopra la riga corrente, chi è il discendente n dall'inizio della gerarchia di righe corrente ed è certo padre nella gerarchia di righe corrente?

Funzioni padre-figlio in DAX

La tabella seguente contiene una gerarchia di Parent-Child nelle colonne: EmployeeKey e ParentEmployeeKey usata in tutti gli esempi di funzioni.

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

Nella tabella precedente si può notare che il dipendente 112 non ha un padre definito, il dipendente 14 ha un dipendente 112 come manager (ParentEmployeeKey), il dipendente 3 ha un dipendente 14 come manager e dipendenti 11, 13 e 162 hanno un dipendente 3 come manager. Il precedente aiuta a capire che il dipendente 112 non ha un manager sopra di lei/lui e lei/lui è il top manager per tutti i dipendenti mostrati qui; inoltre, i dipendenti 3 segnalano ai dipendenti 14 e dipendenti 11, 13, 162 segnalano a 3.

La tabella seguente presenta le funzioni disponibili, una breve descrizione della funzione e un esempio della funzione sugli stessi dati illustrati in precedenza.

PATH funzione: restituisce un testo delimitato con gli identificatori di tutti gli elementi padre alla riga corrente, a partire dal più vecchio o dall'alto fino a quello corrente.

EmployeeKey ParentEmployeeKey Sentiero
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 funzione : restituisce il numero di livelli in un determinato PATH(), a partire dal livello corrente fino al livello principale o meno recente. Nella colonna di esempio seguente PathLength è definita come '= PATHLENGTH([Path])'; L'esempio include tutti i dati dell'esempio Path() per comprendere il funzionamento di questa funzione.

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

PATHITEM funzione: restituisce l'elemento nella posizione specificata da un PATH() come risultato, contando da sinistra a destra. Nella colonna di esempio seguente PathItem - 4 da sinistra è definita come '= PATHITEM([Path], 4)'; In questo esempio viene restituita la proprietà EmployeKey alla quarta posizione nella stringa Path a sinistra, usando gli stessi dati di esempio dell'esempio Path().

EmployeeKey ParentEmployeeKey Sentiero PathItem - 4° da sinistra
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 funzione: restituisce l'elemento in corrispondenza di position da un PATH() come il risultato della funzione, contando all'indietro da destra a sinistra. Nella colonna di esempio seguente PathItemReverse - 3a da destra è definita come '= PATHITEMREVERSE([Path], 3)'; In questo esempio viene restituita la proprietà EmployeKey alla terza posizione nella stringa Path a destra, usando gli stessi dati di esempio dell'esempio Path().

EmployeeKey ParentEmployeeKey Sentiero PathItemReverse - 3° da destra
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 funzione : restituisce TRUE se il item specificato esiste all'interno del pathspecificato. Nella colonna di esempio seguente PathContains - employee 162 è definita come '= PATHCONTAINS([Path], "162")'; Questo esempio restituisce TRUE se il percorso specificato contiene il dipendente 162. Questo esempio usa i risultati dell'esempio Path() precedente.

EmployeeKey ParentEmployeeKey Sentiero PathContains - Employee 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