HierarchyBelongsTo
此前缀用于将父子层次表格转换成在 QlikView 数据模型中有用的表格。此前缀可能置于 LOAD 或 SELECT 语句前面,并会使用加载的语句结果作为表格转换的输入。
此前缀可创建一个包含上下级层次结构关系的表格。上级字段随后可用于选择层次结构的整个树形结构。输出表格通常包含几个节点记录。
语法:
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
输入表格必须为相邻节点表格。相邻表格内每个记录对应一个节点,并且拥有一个包含父节点参考的字段。此类表格内的节点存储在一个记录上,但节点仍拥有任意数量的子节点。表格可能包含更多描述节点属性的字段。
更多包含节点深度差异的字段会被创建。
参数:
参数 | 说明 |
---|---|
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 |