HierarchyBelongsTo
Este prefijo se utiliza para transformar una tabla jerárquica padre-hijo en una tabla que sea útil en un modelo de datos de QlikView. Puede colocarse inmediatamente antes de una sentencia LOADo SELECT y almacenará el resultado de la sentencia de carga como info de entrada para una transformación de tabla.
El prefijo crea una tabla que contiene todas las relaciones hijo-antepasado de la jerarquía. Los campos de antepasados pueden de esta forma utilizarse para seleccionar árboles enteros en la jerarquía. La tabla resultante contiene normalmente varios registros por nodo.
Sintaxis:
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
La tabla de entrada debe ser una tabla de nodos adyacentes. Las tablas de nodos adyacentes son tablas en las que cada registro se corresponde con un nodo y tiene un campo que contiene una referencia al nodo padre. En este tipo de tabla, el nodo se almacena en un único registro, pero puede tener un número indeterminado de hijos. La tabla puede por supuesto contener campos adicionales que describan atributos para los nodos.
Se puede crear un campo adicional que contenga la diferencia de profundidad entre los nodos.
Argumentos:
Argumento | Descripción |
---|---|
NodeID | El nombre del campo que contiene el ID de nodo. Este campo debe existir en la tabla de entrada. |
ParentID | El nombre del campo que contiene el ID de nodo del nodo padre. Este campo debe existir en la tabla de entrada. |
NodeName | El nombre del campo que contiene el nombre del nodo. Este campo debe existir en la tabla de entrada. |
AncestorID | Una cadena que se emplea para nombrar el nuevo campo de ID del antepasado, el cual contiene el ID del nodo antepasado. |
AncestorName | Es una cadena que se emplea para nombrar el nuevo campo del antepasado, el cual contiene el nombre del nodo antepasado. |
DepthDiff | Es una cadena que se emplea para nombrar el nuevo campo DepthDiff, el cual contiene la profundidad del nodo en la jerarquía, en relación al nodo antepasado. Se trata de un parámetro opcional. Si se omite, dicho campo no se creará. |
Ejemplo:
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 |