HierarchyBelongsTo
Detta prefix används för att omvandla en överordnad-underordnad hierarkisk tabell till en tabell som fungerar i en QlikView-datamodell. Det kan sättas framför en LOAD- eller SELECT-sats och det använder resultatet från den laddade satsen som indata för en tabellomvandling.
Prefixet genererar en tabell som visar alla relationer mellan moder och dotter i hierarkin. Moderfälten kan sedan användas för att välja hela träd i hierarkin. Utdatatabellen innehåller i de flesta fall flera poster per nod.
Syntax:
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
Indatatabellen måste vara en ”adjacent nodes”-tabell. ”Adjacent nodes”-tabeller är tabeller där varje post motsvarar en nod och har ett fält som innehåller en referens till modernoden. I en sådan tabell lagras noden i en post men kan ha valfritt antal döttrar. Tabellen kan självklart innehålla ytterligare fält som beskriver nodernas attribut.
Ett ytterligare fält som innehåller djupskillnaden mellan noderna kan skapas.
Argument:
Argument | Beskrivning |
---|---|
NodeID | Namnet på det fält som innehåller nodens ID. Detta fält måste förekomma i indatatabellen. |
ParentID | Namnet på det fält som innehåller modernodens nod-ID. Detta fält måste förekomma i indatatabellen. |
NodeName | Namnet på det fält som innehåller nodens namn. Detta fält måste förekomma i indatatabellen. |
AncestorID | En sträng som används för att namnge det nya fältet för överordnat ID som innehåller den överordnade nodens ID. |
AncestorName | En sträng som används för att namnge det nya fältet Förfaders-ID som innehåller modernodens namn. |
DepthDiff | En sträng som används för att namnge det nya DepthDiff-fältet som innehåller djupet på noden i hierarkin i förhållande till modernoden. Valfri parameter. Om den utelämnas skapas ej detta fält. |
Exempel:
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
];
Resultat:
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 |