Compartilhar via


Noções básicas sobre funções para hierarquias pai-filho no DAX

DAX fornece cinco funções para ajudar os usuários a gerenciar dados apresentados como uma hierarquia pai-filho em seus modelos. Com essas funções, um usuário pode obter toda a linhagem de pais que uma linha tem, quantos níveis tem a linhagem para o pai superior, que é o pai n-níveis acima da linha atual, quem é o n-descendente da parte superior da hierarquia de linha atual and é determinado pai um pai na hierarquia de linhas atual?

Funções pai-filho em DAX

A tabela a seguir uma hierarquia de Parent-Child nas colunas: ParentEmployeeKeyEmployeeKey que é usada em exemplos de funções.

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

Na tabela acima, você pode ver que o funcionário 112 não tem um pai definido, o funcionário 14 tem o funcionário 112 como gerente (ParentEmployeeKey), o funcionário 3 tem o funcionário 14 como gerente and funcionários 11, 13, and 162 têm o funcionário 3 como gerente. O acima ajuda a entender que o funcionário 112 não tem nenhum gerente acima dela and é o gerente superior de all funcionários mostrados aqui; além disso, o funcionário 3 se reporta ao funcionário 14 and os funcionários 11, 13, 162 relatam para 3.

A tabela a seguir apresenta as funções disponíveis, uma breve descrição da função and um exemplo da função nos mesmos dados mostrados acima.

PATH função – retorna um texto delimitado com os identificadores de all os pais para a linha atual, começando com o or mais antigo até o atual.

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

PATHLENGTH função - Retorna o número de níveis em um determinado PATH(), começando no nível atual até que o mais antigo or o nível mais alto do pai. Na coluna de exemplo a seguir, PathLength é definido como '= PATHLENGTH([Path])'; o exemplo inclui all dados do exemplo Path() para ajudar a entender como essa função funciona.

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

PATHITEM função - Retorna o item na posição especificada de um resultado de PATH() como o resultado, contando de left para right. Na coluna de exemplo a seguir PathItem - 4º de left é definido como '= PATHITEM([Path], 4)'; este exemplo retorna o EmployeKey na quarta posição na cadeia de caracteres Path do left, usando os mesmos dados sample do exemplo Path().

EmployeeKey ParentEmployeeKey Path PathItem - 4º de left
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 função - Retorna o item em position de um resultado de função PATH() semelhante, contando com versões anteriores de right para left. Na coluna de exemplo a seguir PathItemReverse - 3º de right é definido como '= PATHITEMREVERSE([Path], 3)'; este exemplo retorna o EmployeKey na terceira posição na cadeia de caracteres Path do right, usando os mesmos dados sample do exemplo Path().

EmployeeKey ParentEmployeeKey Path PathItemReverse - 3º de right
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 função - Retorna TRUEif o item especificado existe dentro do pathespecificado. Na coluna de exemplo a seguir PathContains - o funcionário 162 é definido como '= PATHCONTAINS([Path], "162")'; este exemplo retorna TRUEif o funcionário de pathcontains 162 especificado. Este exemplo usa os resultados do exemplo de Path() acima.

EmployeeKey ParentEmployeeKey Path PathContains - funcionário 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