HierarchyBelongsTo
このプレフィックスは、親子階層テーブルを QlikView データ モデルで有用なテーブルに変換する際に使用します。これは、LOAD や SELECT ステートメントの前に置き、ロード ステートメントの結果をテーブル変換の入力として使用します。
このプレフィックスを使用すると、階層における先祖ノードと子ノードの関係をすべて含むテーブルが作成されます。その結果、先祖項目を使用して階層のツリー全体を選択できるようになります。ほとんどの場合、出力テーブルには各ノードにつき複数のレコードが含まれています。
構文:
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
入力テーブルは、隣接するノード テーブルでなければなりません。通常、隣接するノード テーブルは、各レコードがノードと一致し、親ノードへの参照を含む項目が含まれます。このようなテーブルでは、ノードは 1 つのレコードにしか保存されませんが、子ノードをいくつでも持つことができます。当然のことながら、テーブルには、ノードの属性が記述された追加項目が含まれている可能性があります。
異なるレベルのノードを持つ追加項目を作成することも可能です。
引数:
引数 | 説明 |
---|---|
NodeID | ノード ID を含む項目の名前。 この項目は入力テーブルになくてはなりません。 |
ParentID | 親ノードのノード ID を含む項目の名前。 この項目は入力テーブルになくてはなりません。 |
NodeName | ノード名が含まれる項目の名前。 この項目は入力テーブルになくてはなりません。 |
AncestorID | 新しい親 ID フィールドに名前を付けるための文字列で、親ノードの ID が含まれます。 |
AncestorName | 新しい先祖項目に名前を付けるための文字列で、先祖ノードの名前が含まれます。 |
DepthDiff | 新しい DepthDiff 項目に名前を付けるための文字列で、先祖ノードと関連している階層ノードのレベルが含まれます。このパラメータはオプションです。省略すると、この項目は作成されません。 |
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 |