HierarchyBelongsTo

Prefiks ten służy do przekształcenia tabeli hierarchii nadrzędne-podrzędne w tabelę nadającą się do użycia w modelu danych QlikView. Podanie go przed instrukcją LOAD lub SELECT sprawi, że wynik instrukcji ładującej będzie używany jako dane wejściowe dla transformacji tabeli.

Prefiks powoduje utworzenie tabeli zawierającej wszystkie relacje nadrzędny-podrzędny w całej hierarchii. Wybierając pola nadrzędne, można następnie wybierać całe drzewa hierarchii. Tabela wyjściowa zwykle zawiera kilka rekordów dla każdego węzła.

Składnia:  

HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)

 

Tabela wejściowa musi być tabelą węzłów sąsiadujących. Tabela węzłów sąsiadujących to tabela, w której każdy rekord odpowiada jednemu węzłowi i zawiera pole z odwołaniem do węzła macierzystego. W takiej tabeli każdy węzeł jest zapisany tylko w jednym rekordzie, ale mimo to może mieć dowolną liczbę węzłów potomnych. Tabela może oczywiście zawierać dodatkowe pola opisujące atrybuty węzłów.

Można utworzyć dodatkowe pole opisujące różnice między głębokością węzłów.

Argumenty:  

Argument Opis
NodeID Nazwa pola zawierającego identyfikator węzła. To pole musi istnieć w tabeli wejściowej.
ParentID Nazwa pola zawierającego identyfikator węzła nadrzędnego. To pole musi istnieć w tabeli wejściowej.
NodeName Nazwa pola zawierającego nazwę węzła. To pole musi istnieć w tabeli wejściowej.
AncestorID Ciąg znaków używany do nazwania nowego pola identyfikatora węzła nadrzędnego, które zawiera identyfikator węzła nadrzędnego.
AncestorName Ciąg znaków używany do nazwania nowego pola węzła nadrzędnego, które zawiera nazwę węzła nadrzędnego.
DepthDiff Ciąg znaków używany do nazwania nowego pola DepthDiff, które zawiera głębokość węzła w hierarchii względem węzła nadrzędnego. Parametr opcjonalny. W przypadku pominięcia to pole nie zostanie utworzone.

Przykład:  

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

];

Wynik:

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

Zob. także: