HierarchyBelongsTo

Esse prefixo é usado para transformar uma tabela de hierarquia pai-filho em uma tabela que seja útil em um modelo de dados do QlikView. Ele pode ser colocado na frente de um comando LOAD ou SELECT e usará o resultado do comando de carregamento como entrada para uma transformação de tabela.

O prefixo cria uma tabela que contém todas as relações entre filho e ancestral da hierarquia. Então, os campos de ancestral podem ser usados para selecionar árvores inteiras da hierarquia. A tabela de saída quase sempre contém vários registros por nó.

Syntax:  

HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)

 

A tabela de entrada deve ser uma tabela de nós adjacentes. As tabelas de nós adjacentes são tabelas em que cada registro corresponde a um nó e tem um campo que contém uma referência para o nó pai. Em uma tabela como essa, o nó é armazenado em apenas um registro, mas o nó ainda pode ter um número indefinido de filhos. A tabela pode conter campos adicionais que descrevem atributos para os nós.

Um campo adicional que contém a diferença de profundidade dos nós pode ser criado.

Arguments:  

Argumento Descrição
NodeID O nome do campo que contém a id do nó. O campo deve existir na tabela de entrada.
ParentID O nome do campo que contém a id do nó do nó pai. O campo deve existir na tabela de entrada.
NodeName O nome do campo que contém o nome do nó. O campo deve existir na tabela de entrada.
AncestorID Uma string usada para atribuir um nome a um novo campo da id do ancestral, que contém a id do nó do ancestral.
AncestorName Uma string usada para atribuir um nome a um novo campo de ancestral, que contém o nome do nó do ancestral.
DepthDiff Uma string usada para atribuir um nome ao novo campo DepthDiff, que contém a profundidade do nó na hierarquia em relação ao nó do ancestral. Parâmetro opcional. Se omitido, esse campo não será criado.

Example:  

HierarchyBelongsTo (NodeID, AncestorID, NodeName, AncestorID, AncestorName, DepthDiff) LOAD * inline [

NodeID, AncestorID, NodeName

1, 4, London

2, 3, Munich

3, 5, Germany

4, 5, UK

5, , Europe

];

Resultado:

NodeID AncestorID NodeName AncestorName DepthDiff
1 1 London London 0
1 4 London UK 1
1 5 London Europe 2
2 2 Munich Munich 0
2 3 Munich Germany 1
2 5 Munich Europe 2
3 3 Germany Germany 0
3 5 Germany Europe 1
4 4 UK UK 0
4 5 UK Europe 1
5 5 Europe Europe 0