Hierarchy

O prefixo hierarchy é usado para transformar uma tabela de hierarquia pai-filho em uma tabela ú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 de nós expandidos, que normalmente tem o mesmo número de registros como a tabela de entrada, mas cada nível na hierarquia é armazenado em um campo à parte. O campo do caminho pode ser usado em uma lista em árvore.

Sintaxe:  

Hierarchy (NodeID, ParentID, NodeName, [ParentName], [PathSource], [PathName], [PathDelimiter], [Depth])(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.

Normalmente, a tabela de entrada possui exatamente um registro por nó e, nesse caso, a tabela de saída conterá o mesmo número de registros. Contudo, em alguns casos há nós com vários pais, ou seja, um nó é representado por diversos registros na tabela de entrada. Nesse caso, a tabela de saída pode ter mais registros do que a tabela de entrada.

Todos os nós com um ID pai não encontrado na coluna ID do nó (inclusive nós com ID pai não encontrado) serão considerados raiz. Além disso, somente os nós com uma conexão com um nó raiz, direta ou indireta, serão carregados, evitando-se referências circulares.

Campos adicionais que contêm o nome do nó pai, o caminho do nó e a profundidade do nó podem ser criados.

Argumentos:  

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.
ParentName Uma string usada para atribuir um nome ao novo campo ParentName. Se omitido, esse campo não será criado.
ParentSource O nome do campo que contém o nome do nó usado para criar o caminho do nó. Parâmetro opcional. Se omitido, NodeName será usado.
PathName Uma string usada para nomear o novo campo Path, que contém o caminho da raiz até o nó. Parâmetro opcional. Se omitido, esse campo não será criado.
PathDelimiter Uma string usada como delimitador no novo campo Path. Parâmetro opcional. Se omitido, ‘/’ será usado.
Depth Uma string usada para atribuir um nome ao novo campo Depth, que contém a profundidade do nó na hierarquia. Parâmetro opcional. Se omitido, esse campo não será criado.

Exemplo:  

Hierarchy(NodeID, ParentID, NodeName, ParentName, NodeName, PathName, '\', Depth) LOAD * inline [

NodeID, ParentID, NodeName

1, 4, London

2, 3, Munich

3, 5, Germany

4, 5, UK

5, , Europe

];

Resultado:

NodeID NodeName ParentID ParentName NodeName1 NodeName2 NodeName3 PathName Depth
5 Europe   - Europe - - Europe 1
3 Germany 5 Europe Europe Germany - Europe\Germany 2
2 Munich 3 Germany Europe Germany Munich Europe\Germany\Munich 3
4 UK 5 Europe Europe UK - Europe\UK 2
1 London 4 UK Europe UK London Europe\UK\London 3

Consulte também: