Informazioni sulle funzioni per le gerarchie padre-figlio in DAX

In DAX sono disponibili cinque funzioni che consentono agli utenti di gestire i dati presentati come gerarchia padre-figlio nei modelli. Grazie a queste funzioni un utente può ottenere l'intera derivazione di elementi padre di una riga, ovvero determinare quanti livelli ha la derivazione del primo elemento padre, qual è l'elemento padre n livelli sopra la riga corrente, qual è il discendente n dall'inizio della gerarchia di righe corrente e se un determinato elemento padre è un elemento padre nella gerarchia di righe corrente.

Funzioni padre-figlio in DAX

Nella tabella seguente è contenuta una gerarchia padre-figlio nelle colonne EmployeeKey e ParentEmployeeKey utilizzata 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 è possibile notare che per il dipendente 112 non sono definiti elementi padre, il dipendente 14 ha il dipendente 112 come responsabile (ParentEmployeeKey), il dipendente 3 ha il dipendente 14 come responsabile e i dipendenti 11, 13 e 162 hanno il dipendente 3 come responsabile. In base a ciò, è possibile stabilire che il dipendente 112 non ha responsabili a cui rispondere e che è il responsabile principale di tutti i dipendenti indicati qui. Inoltre, il dipendente 3 risponde al dipendente 14 e i dipendenti 11, 13, 162 rispondono al dipendente 3.

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

Funzione PATH - Restituisce un testo delimitato con gli identificatori di tutti gli elementi padre della riga corrente, a partire dal meno recente o da quello superiore fino a quello corrente.

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

Funzione PATHLENGTH - Restituisce il numero di livelli in un determinato PATH(), a partire dal livello corrente fino al livello padre meno recente o a quello superiore. Nell'esempio seguente la colonna PathLength è definita come '= PATHLENGTH([Path])'. L'esempio include tutti i dati dell'esempio Path() che consentono di comprendere il funzionamento di questa funzione.

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

Funzione PATHITEM - Restituisce l'elemento nella posizione specificata da un risultato di tipo PATH(), contando da sinistra a destra. Nell'esempio seguente la colonna PathItem, la quarta da sinistra, è definita come '= PATHITEM([Path], 4)'. Questo esempio restituisce l'elemento EmployeKey nella quarta posizione da sinistra della stringa Path, usando gli stessi dati di esempio dell'esempio Path().

EmployeeKey ParentEmployeeKey Percorso PathItem, quarta 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

Funzione PATHITEMREVERSE - Restituisce l'elemento in position dal risultato di una funzione di tipo PATH(), contando da destra a sinistra.
Nell'esempio seguente la colonna PathItemReverse, la terza da destra, è definita come '= PATHITEMREVERSE([Path], 3)'. Questo esempio restituisce l'elemento EmployeKey nella terza posizione da destra nella stringa Path, usando gli stessi dati di esempio dell'esempio Path().

EmployeeKey ParentEmployeeKey Percorso PathItemReverse, terza 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

Funzione PATHCONTAINS - Restituisce TRUE se l'elemento item specificato è presente nel path specificato. Nell'esempio seguente la colonna PathContains, con il dipendente 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 Percorso PathContains, dipendente 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