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.

Arguments:  

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.

Example:  

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