Partilhar via


Compreendendo funções para hierarquias pai-filho em DAX

O DAX fornece cinco funções para ajudar os usuários a gerenciar dados que são apresentados como uma hierarquia pai-filho nos seus modelos. Com essas funções, um usuário pode obter a linhagem inteira de pais de uma linha, quantos níveis a linhagem ao pai de parte superior que os níveis de n pai estão acima da linha atual que o descendente de n é da parte superior da hierarquia de linha atual e certo pai é um pai na hierarquia de linha atual?

Funções pai-filho em DAX

A seguinte tabela contém uma hierarquia Pai-Filho nas colunas: EmployeeKey e ParentEmployeeKey que é usada em todos os 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 anterior, verifique que o funcionário 112 não tem 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 e os funcionários 11, 13 e 162 têm o funcionário 3 como gerente. Essa tabela o ajuda a compreender que o funcionário 112 não tem gerente acima dele e que ele é o gerente principal de todos os funcionários mostrados aqui; além disso, o funcionário 3 se reporta ao funcionário 14 e os funcionários 11, 13, 162 se reportam ao funcionário 3.

A tabela a seguir apresenta as funções disponíveis, uma breve descrição da função e um exemplo da função em relação aos mesmos dados mostrados anteriormente.

Função

Descrição / Exemplo

Função PATH (DAX)

Retorna um texto delimitado com os identificadores de todos os pais da linha atual, começando pelo mais antigo ou o primeiro até o atual.

No exemplo a seguir, a coluna 'Path' é definida como '=PATH(EmployeeKey, ParentEmployeeKey)'

EmployeeKey

ParentEmployeeKey

Caminho

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

Função PATHLENGTH (DAX)

Retorna o número de níveis em determinado PATH(), começando pelo nível atual até o primeiro nível pai ou o mais antigo.

No exemplo a seguir, a coluna PathLength é definida como '=PATHLENGTH([Path])'; o exemplo inclui todos os dados do exemplo de Path() para ajudar a compreender como esta função funciona.

EmployeeKey

ParentEmployeeKey

Caminho

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

Função PATHITEM (DAX)

Retorna o item à posição especificada de um resultado como PATH(), contando da esquerda para a direita.

No exemplo a seguir, a coluna PathItem - 4th from left é definida como '=PATHITEM([Path], 4)'; este exemplo retorna o EmployeKey na quarta posição na cadeia de caracteres Path a partir da esquerda, usando os mesmos dados de exemplo do exemplo Path().

EmployeeKey

ParentEmployeeKey

Caminho

PathItem - 4th from 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

Função PATHITEMREVERSE (DAX)

Retorna o item em position de um resultado de função como PATH(), contando de trás para a frente, da direita para a esquerda.

No exemplo a seguir, a coluna PathItemReverse - 3rd from right é definida como '=PATHITEMREVERSE([Path], 3)'; este exemplo retorna o EmployeKey na terceira posição na cadeia de caracteres Path a partir da direita, usando os mesmos dados de exemplo do exemplo Path().

EmployeeKey

ParentEmployeeKey

Caminho

PathItemReverse - 3rd from 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

Função PATHCONTAINS (DAX)

Retorna TRUE quando o item especificado existe no path especificado.

No exemplo a seguir, a coluna PathContains - employee 162 é definido como '=PATHCONTAINS([Path], "162")'; este exemplo retorna TRUE quando o caminho especificado contém o funcionário 162. Este exemplo usa os resultados do exemplo Path() anterior.

EmployeeKey

ParentEmployeeKey

Caminho

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

Observação sobre cuidadosCuidado

No SQL Server 2012 Analysis Services, o mecanismo analítico na memória xVelocity (VertiPaq) não oferece suporte à definição de hierarquias pai-filho; porém, a linguagem DAX fornece um conjunto de funções que permite aos usuários explorar hierarquias pai-filho e usar essas hierarquias em fórmulas.