HierarchyBelongsTo
Ce préfixe permet de transformer une table de hiérarchies parent-enfant en table utile dans un modèle de données QlikView. Vous pouvez l'insérer devant une instruction LOAD ou SELECT. Il utilise le résultat de l'instruction de chargement comme entrée pour une transformation de table.
Le préfixe crée une table contenant toutes les relations ancêtre-enfant de la hiérarchie. Les champs d'ancêtre peuvent alors être utilisés pour sélectionner des arborescences entières dans la hiérarchie. Dans la plupart des cas, la table de sortie contient plusieurs enregistrements par nœud.
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
La table d'entrée doit être une table de nœuds adjacents. Les tables de nœuds adjacents sont des tables dans lesquelles chaque enregistrement correspond à un nœud et possède un champ contenant une référence au nœud parent. Dans une table de ce type, le nœud est stocké dans un seul enregistrement, mais il peut comporter plusieurs enfants. La table peut bien sûr comporter des champs supplémentaires décrivant les attributs des nœuds.
Un champ supplémentaire contenant la différence de profondeur des nœuds peut être créé.
Argument | Description |
---|---|
NodeID | Nom du champ contenant l'ID du nœud. Ce champ doit exister dans la table d'entrée. |
ParentID | Nom du champ contenant l'ID du nœud parent. Ce champ doit exister dans la table d'entrée. |
NodeName | Nom du champ contenant le nom du nœud. Ce champ doit exister dans la table d'entrée. |
AncestorID | Chaîne utilisée pour nommer le nouveau champ d'ID d'ancêtre contenant l'ID du nœud ancêtre. |
AncestorName | Chaîne utilisée pour nommer le nouveau champ d'ancêtre contenant le nom du nœud ancêtre. |
DepthDiff | Chaîne utilisée pour nommer le nouveau champ DepthDiff, qui contient la profondeur du nœud dans la hiérarchie relative au nœud ancêtre. Paramètre facultatif. Si cette chaîne est omise, le champ n'est pas créé. |
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
];
Résultat :
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 |