HierarchyBelongsTo
Mithilfe dieses Zusatzes wird eine Hierarchie-Tabelle mit übergeordneten/untergeordneten Elementen in eine Tabelle umgeformt, die in einem QlikView-Datenmodell verwendet werden kann. Er kann vor dem Befehl LOAD oder SELECT eingefügt werden und verwendet anschließend das Ergebnis des Ladebefehls als Eingabe für eine Tabellenumformung.
Die resultierende Vorfahrentabelle enthält für jeden Knoten sämtliche Vorfahren, d. h. alle übergeordneten Knoten. Das Feld mit den Vorfahren eignet sich besonders gut für Selektionen innerhalb der Hierarchie. Die Ausgabetabelle enthält normalerweise mehrere Datensätze pro Knoten.
Syntax:
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
Die Eingabetabelle muss eine Tabelle mit benachbarten Knoten sein. Tabellen mit benachbarten Knoten sind Tabellen, in denen jeder Datensatz einem Knoten entspricht und über ein Feld verfügt, das auf einen übergeordneten Knoten verweist. Jeder Knoten wird in dieser Tabelle in nur einem Datensatz gespeichert, jedoch kann der Knoten über mehrere untergeordnete Elemente verfügen. Natürlich kann die Tabelle auch weitere Felder enthalten, etwa mit Attributen.
Es kann ein zusätzliches Feld für die Zahl der Ebenen zwischen den Knoten generiert werden.
Argumente:
Argument | Beschreibung |
---|---|
NodeID | Der Name des Felds, das die Knoten-ID enthält. Das Feld muss in der Eingabetabelle vorhanden sein. |
ParentID | Der Name des Felds, das die ID der Eltern, d. h. des direkt übergeordneten Knotens, enthält. Das Feld muss in der Eingabetabelle vorhanden sein. |
NodeName | Der Name des Felds, das die Bezeichnung des Knotens enthält. Das Feld muss in der Eingabetabelle vorhanden sein. |
AncestorID | Ein String zur Benennung des neuen Vorfahr ID-Felds, das die ID der Vorfahren enthält. |
AncestorName | Ein String zur Benennung des neuen Vorfahr-Felds, das den Namen der Vorfahren enthält. |
DepthDiff | Ein String zur Benennung des neuen DepthDiff-Felds, das die Zahl der Ebenen zwischen dem Knoten und dem Vorfahr enthält. Dieser Parameter ist optional. Fehlt dieser Parameter, wird kein solches Feld generiert. |
Beispiel:
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
];
Ergebnis:
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 |