HierarchyBelongsTo

このプレフィックスは、親子階層テーブルを QlikView データ モデルで有用なテーブルに変換する際に使用します。これは、LOADSELECT ステートメントの前に置き、ロード ステートメントの結果をテーブル変換の入力として使用します。

このプレフィックスを使用すると、階層における先祖ノードと子ノードの関係をすべて含むテーブルが作成されます。その結果、先祖項目を使用して階層のツリー全体を選択できるようになります。ほとんどの場合、出力テーブルには各ノードにつき複数のレコードが含まれています。

Syntax:  

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

 

入力テーブルは、隣接するノード テーブルでなければなりません。通常、隣接するノード テーブルは、各レコードがノードと一致し、親ノードへの参照を含む項目が含まれます。このようなテーブルでは、ノードは 1 つのレコードにしか保存されませんが、子ノードをいくつでも持つことができます。当然のことながら、テーブルには、ノードの属性が記述された追加項目が含まれている可能性があります。

異なるレベルのノードを持つ追加項目を作成することも可能です。

Arguments:  

引数 説明
NodeID ノード ID を含む項目の名前。 この項目は入力テーブルになくてはなりません。
ParentID 親ノードのノード ID を含む項目の名前。 この項目は入力テーブルになくてはなりません。
NodeName ノード名が含まれる項目の名前。 この項目は入力テーブルになくてはなりません。
AncestorID 新しい親 ID フィールドに名前を付けるための文字列で、親ノードの ID が含まれます。
AncestorName 新しい先祖項目に名前を付けるための文字列で、先祖ノードの名前が含まれます。
DepthDiff 新しい DepthDiff 項目に名前を付けるための文字列で、先祖ノードと関連している階層ノードのレベルが含まれます。このパラメータはオプションです。省略すると、この項目は作成されません。

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

];

結果:

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