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
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 TRUE
if o item
especificado existe dentro do path
especificado. Na coluna de exemplo a seguir PathContains - o funcionário 162 é definido como '= PATHCONTAINS([Path], "162")
'; este exemplo retorna TRUE
if 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 |