# 金融 / 框架构造Tools / 数据分析 / 树形表格遍历

## `getTreeSumByClassPath(data, node_name, path_name, sum_name, if_lever_0, if_tree_id)`

声明：function

根据分类路径树层求和

<!-- tags: 金融 Tools 框架构造 数据分析 树形表格遍历 获取 查询 -->

| 参数         | 类型    | 说明                                                                                                     |
| ------------ | ------- | -------------------------------------------------------------------------------------------------------- |
| `data`       | db_data | 二维数组，原数据、包含NodeName、PathName、SumName字段，若需外部传入id与pid，需增加“分类ID”、“节点ID”字段 |
| `node_name`  | string  | 字符串， 节点字段名称，如“名称”                                                                          |
| `path_name`  | string  | 字符串，分类路径字段名称，如“分类路径”，分类路径PathName，不同层级之间以 单斜杠“\”连接                   |
| `sum_name`   | string  | 字符串或一维数组，分类求和字段名称，如“取值”；对多个字段求和时为一维数组                                 |
| `if_lever_0` | boolean | 布尔， 是否输出第0层，缺省表示不输出                                                                     |
| `if_tree_id` | boolean | 布尔，是否返回树ID，缺省表示不返回“id”、“pid”字段                                                        |

返回：array

### 示例

范例01：调用函数

```tsl
data := array(
    ("名称":"风格收益(%)", "取值":1.2, "分类路径":"总收益(%)"),
    ("名称":"Alpha(%)", "取值":0.6, "分类路径":"总收益(%)\\选股Alpha(%)"),
    ("名称":"残差(%)", "取值":0.2, "分类路径":"总收益(%)\\选股Alpha(%)"));
node_name := "名称";
path_name := "分类路径";
sum_name := "取值";
if_lever0 := 0;
if_tree_id := 1;
return getTreeSumByClassPath(data, node_name, path_name, sum_name, if_lever0, if_tree_id);
```
