HierarchyBelongsTo
Questo prefisso viene utilizzato per trasformare una tabella gerarchica padre-figlio in una tabella utile in un modello dati di QlikView. Può essere inserito prima di un'istruzione LOAD o SELECT e utilizzerà il risultato dell'istruzione di caricamento come input per la trasformazione della tabella.
Il prefisso consente di creare una tabella contenente tutte le relazioni padre-figlio della gerarchia. I campi padre possono essere quindi utilizzati per selezionare intere sezioni di tale gerarchia. Nella maggior parte dei casi, la tabella di output contiene più record per nodo.
Sintassi:
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
La tabella di input deve essere una tabella di nodi adiacenti. Le tabelle di nodi adiacenti sono tabelle in cui ogni record corrisponde a un nodo e presenta un campo contenente un riferimento al nodo padre. In questa tabella il nodo è salvato solamente su un record, anche se può presentare un qualsiasi numero di figli. Ovviamente la tabella può contenere campi aggiuntivi che descrivono gli attributi dei nodi.
Può essere creato un campo aggiuntivo contenente la differenza di profondità dei nodi.
Argomenti:
Argomento | Descrizione |
---|---|
NodeID | Il nome del campo contenente l'ID del nodo. Questo campo deve essere contenuto nella tabella di input. |
ParentID | Il nome del campo contenente l'ID nodo del nodo padre. Questo campo deve essere contenuto nella tabella di input. |
NodeName | Il nome del campo contenente il nome del nodo. Questo campo deve essere contenuto nella tabella di input. |
AncestorID | Una stringa utilizzata per assegnare un nome al nuovo campo ID padre, contenente l'ID del nodo padre. |
AncestorName | Una stringa utilizzata per assegnare un nome al nuovo campo padre, contenente il nome del nodo padre. |
DepthDiff | Una stringa utilizzata per assegnare un nome al nuovo campo DepthDiff, contenente la profondità del nodo nella gerarchia relativa al nodo padre. È un parametro opzionale. Se omessa, il campo non verrà creato. |
Esempio:
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
];
Risultato:
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 |