Back to skills
extension
Category: Data & AnalyticsNo API key required

four-step-query

营业部月报4步查询法强制执行Skill。当用户查询证券营业部月度指标值、排名、均值、对比等数据时触发此Skill。强制按4步法顺序执行(定位营业部→定位指标→查事实表→单位换算),每步必须输出确认信息后才能进入下一步,禁止跳步、禁止直接求和、禁止用名称过滤事实表。

personAuthor: user_66c598fbhubcommunity

营业部月报4步查询法(强制版)

触发条件

用户提问涉及以下任一场景时,必须触发此Skill

  • 查营业部指标值(如"苏州狮山路营业部5月代理买卖业务净收入是多少")
  • 查排名(如"代理买卖业务净收入在全公司排第几")
  • 查均值(如"同级别营业部平均多少")
  • 对比分析(如"苏州狮山路和昆山前进中路对比")
  • 综合分析涉及指标值/排名/均值的问题

禁止动作清单(违反即视为严重错误)

以下动作绝对禁止,遇到必须立即纠正:

  1. 禁止用营业部名称过滤事实表 → 事实表(指标明细、排名明细、均值表)只能用**"机构编号"**字段查询,不能用"机构名称"字段,更不能用用户原始说的营业部名称
  2. 禁止跳步 → 必须按步骤1→2→3→4顺序执行,未完成上一步不允许进入下一步
  3. 禁止直接对多行数据求和 → 查询返回多行时,必须先检查区分字段并说明各行含义,确认能否聚合后再操作
  4. 禁止用指标别名代替指标ID查询事实表 → 事实表必须用"指标ID"字段,不能用"指标别名"或"指标名称"
  5. 禁止猜测日期格式 → 数据日期字段必须使用YYYYMM格式(如"202605"),不能用日期范围或YYYY/MM/DD格式
  6. 禁止替用户决定指标映射 → 当用户说的指标名称与库中指标名不完全匹配时,必须告知用户差异并确认,不能直接当作等价使用

强制4步流程

每一步必须输出确认信息后才能执行下一步。未输出确认信息视为跳步。


【步骤1】定位营业部

目标:通过 营业部明细表,获取营业部的 营业部编码

表间关系(重要)

营业部明细表 ──1:N── 三张事实表(指标明细_月度 / 排名明细 / 均值表_月)
连接字段:营业部明细表."营业部编码" = 事实表."机构编号"

名称对应关系:
  营业部明细表."营业部全称" = 事实表."机构名称"
  (两者内容相同,但不同表的字段名不一样)

操作: 在营业部明细表中,用用户提到的营业部名称做搜索匹配。

匹配策略(按优先级执行):

  1. 精确匹配:用户说的名称完全等于表中**"营业部全称"**字段
  2. 去后缀匹配:用户说"苏州狮山路",尝试补常见后缀("营业部""证券营业部""服务部""理财中心")后再精确匹配
  3. 子串匹配:用户说"狮山路",在**"营业部全称"**字段中做包含匹配
  4. 多候选消歧:如果以上匹配到多条记录,必须列出所有候选让用户选择,禁止自行选定一条

** 消歧处理**: 如果匹配到多条营业部(如用户只说"苏州",匹配到苏州狮山路、苏州相城大道等),必须:

  • 列出所有候选(营业部编码、营业部全称、所属分公司)
  • 请用户确认选择哪一条
  • 用户确认后才算步骤1完成

必须输出以下确认信息(格式严格遵守):

【步骤1完成】
营业部编码:XXX
营业部全称:XXX
匹配方式:精确匹配/去后缀匹配/子串匹配/消歧确认

只有输出以上确认信息后,才能进入步骤2。


【步骤2】定位指标

目标:通过 指标信息表,获取指标的 指标ID单位换算信息

操作: 在指标信息表中,用用户提到的指标名称做搜索匹配。

匹配策略

  1. 精确匹配:用户说的指标名称完全等于表中"指标别名"字段或"指标名称"字段
  2. 模糊匹配:如果精确匹配失败,搜索包含用户关键词的指标别名

** 指标映射确认**(关键规则): 如果用户说的指标名称与库中找到的指标不完全一致,必须:

  • 明确告知用户差异(如:用户说"代理买卖业务净收入",库中指标是"代理买卖业务净收入及保证金利差收入")
  • 说明差异的含义(如:"该指标包含了保证金利差收入部分,不完全等同于纯代理买卖业务净收入")
  • 请用户确认是否使用该指标
  • 用户确认后才算步骤2完成

必须同时获取以下信息(供步骤3和步骤4使用):

  • 指标ID(供步骤3查事实表用)
  • 指标别名(供呈现给用户用)
  • 营业部单位(供步骤4单位换算用,用于匹配单位换算表的"单位"字段)

必须输出以下确认信息

【步骤2完成】
指标ID:XXX
指标别名:XXX
是否精确匹配用户意图:是/否(若否,说明差异)
营业部单位:XXX(供步骤4使用,对应单位换算表.单位)

只有输出以上确认信息后,才能进入步骤3。


【步骤3】查询事实表

目标:根据查询类型,在对应事实表中获取数据

前置条件:步骤1和步骤2必须已完成,已有营业部编码指标ID

关键规则:查事实表时必须用"机构编号"字段(来自步骤1的"营业部编码"),禁止用"机构名称"或任何名称字段

查询类型判断

根据用户问题的意图判断查询类型:

  • 用户问"是多少""金额""值" → 查指标值
  • 用户问"排第几""排名""第X名" → 查排名
  • 用户问"平均""均值""人均""全公司均值" → 查均值
  • 用户同时问多个类型 → 分别查询,每种类型单独执行步骤3

3A. 查指标值 → 财富条线指标明细_月度_

必填条件(三个条件组合可精确查询到1条记录): | 条件 | 来源 | 字段 | |------|------|------| | 指标ID | 步骤2结果 | 指标ID字段 | | 数据日期 | 用户问题 | YYYYMM格式(如"202605") | | 机构编号 | 步骤1的营业部编码 | 机构编号字段(=营业部明细表.营业部编码) |

** 如果返回多行**:

  • 检查所有字段,找出区分这些行的字段(分析维度、数据来源、统计口径等)
  • 说明各行代表的含义
  • 禁止直接求和,必须先确认是否应该聚合以及聚合方式

3B. 查排名 → 财富条线指标排名明细

必填条件(五个条件组合可精确查询到1条记录): | 条件 | 来源 | 值说明 | |------|------|--------| | 指标ID | 步骤2结果 | 指标ID字段 | | 数据日期 | 用户问题 | YYYYMM格式 | | 机构编号 | 步骤1的营业部编码 | 机构编号字段(=营业部明细表.营业部编码) | | 分析维度 | 用户意图判断 | 见下方分析维度值表 | | 排名类型 | 用户意图判断 | 见下方排名类型值表 |

排名类型值表(完整): | 排名类型值 | 含义 | |-----------|------| | 1 | 全公司排名 | | 2 | 所属分公司内排名 | | 4 | 同级别排名 |

注意:排名类型没有值3。

分析维度值表(完整): | 分析维度值 | 含义 | 机构编号填写规则 | |-----------|------|----------------| | 1 | 全公司均值维度 | 可不填或填NULL | | 2 | 所属分公司营业部均值维度 | = 步骤1的营业部编码 | | 3 | 同级别营业部均值维度 | = 步骤1的营业部编码 | | 4 | 人均维度 | = 步骤1的营业部编码 |

排名类型确认规则

  • 用户说"在全公司排第几" / "全国排第几" → 排名类型=1
  • 用户说"在分公司内排第几" / "区域内排第几" → 排名类型=2
  • 用户说"同级排第几" / "同级别排第几" → 排名类型=4
  • 用户只说"排第几"没有明确范围 → 必须询问用户是全公司(1)、分公司(2)还是同级别(4)排名,禁止自行假设

分析维度与排名类型的对应关系

  • 排名类型=1(全公司排名) → 分析维度=1(全公司维度)
  • 排名类型=2(分公司内排名) → 分析维度=2(所属分公司维度)
  • 排名类型=4(同级别排名) → 分析维度=3(同级别维度)
  • 这是固定对应关系,不是可选项

如果不指定排名类型和分析维度: 查询会返回多条记录(不同维度/类型的排名),禁止只取第一条或随意选一条。必须先明确排名类型和分析维度,再精确查询。

排名查询完成后,跳过步骤4,直接输出结果。


3C. 查均值 → 财富条线指标均值表_月_

必填条件(四个条件组合可精确查询到1条记录): | 条件 | 来源 | 值说明 | |------|------|--------| | 指标ID | 步骤2结果 | 指标ID字段 | | 数据日期 | 用户问题 | YYYYMM格式 | | 机构编号 | 步骤1的营业部编码 | 机构编号字段(=营业部明细表.营业部编码),维度1可不填或NULL | | 分析维度 | 用户意图判断 | 见下方值表 |

分析维度值表(完整): | 分析维度值 | 含义 | 机构编号填写规则 | |-----------|------|----------------| | 1 | 全公司均值 | 可不填或填NULL(查全公司所有营业部的均值) | | 2 | 所属分公司营业部均值 | = 步骤1的营业部编码(查该营业部所属分公司的均值) | | 3 | 同级别营业部均值 | = 步骤1的营业部编码(查与该营业部同级别的均值) | | 4 | 人均 | = 步骤1的营业部编码(查该营业部的人均) |

分析维度确认规则

  • 用户说"全公司平均""全公司均值" → 分析维度=1,机构编号不填/填NULL
  • 用户说"分公司平均""区域平均" → 分析维度=2
  • 用户说"同级别平均""同级均值" → 分析维度=3
  • 用户说"人均""人均值" → 分析维度=4
  • 用户只说"平均"没有明确口径 → 必须询问用户是全公司(1)、所属分公司(2)、同级别(3)还是人均(4)
  • 禁止自己算人均(如查"人数"指标再手动除),均值表中已有分析维度4的现成人均数据,直接查即可

【步骤4】单位换算(仅查指标值/查均值时执行)

目标:将原始值换算为展示值

排名查询跳过此步骤

操作

  1. 从步骤2获取的"营业部单位"字段值,在单位换算表中按**"单位"**字段找到对应行
  2. 获取该行的**"换算比例""小数位数"**
  3. 计算展示值:原始值 × 换算比例 → 按小数位数四舍五入
  4. 输出时同时标注单位(如"万元""亿元")

此步骤强制执行,禁止跳过或直接输出原始值。

必须输出以下确认信息

【步骤4完成】
原始值:XXX(单位:元/千元/etc)
匹配的单位:{营业部单位} → 单位换算表中对应行
换算比例:XXX
小数位数:XXX
展示值:XXX(单位:万元/etc)

##结果校验规则(输出最终答案前必须执行)

在输出最终答案之前,必须逐一检查以下规则:

| 校验项 | 规则 | 不符合时的处理 | |--------|------|---------------| | 步骤1是否完成 | 必须有营业部编码 | 未完成则报错,不能输出答案 | | 步骤2是否完成 | 必须有指标ID | 未完成则报错,不能输出答案 | | 步骤3事实表字段 | 必须使用**"机构编号"**(来自步骤1的营业部编码),禁止用名称字段 | 发现用了机构名称或用户原始名称 → 重新查询 | | 步骤3返回行数 | 如果>1行 | 必须说明各行区别,确认能否聚合 | | 步骤3返回0行 | 检查日期格式是否为YYYYMM、指标ID是否正确 | 提示用户确认日期或指标 | | 指标匹配度 | 步骤2是否精确匹配 | 不精确则已在步骤2确认 | | 排名查询参数 | **排名类型(1/2/4)分析维度(1/2/3/4)**是否指定且值合法 | 未指定则询问用户;值不在合法范围内则纠正 | | 均值查询参数 | **分析维度(1/2/3/4)**是否指定 | 未指定则询问用户 | | 步骤4是否执行 | 指标值/均值查询必须完成换算 | 未完成则补执行 | | 单位标注 | 最终值必须标注单位 | 无单位则回步骤4 |


📋 最终答案输出模板

所有查询结果必须按以下模板输出:

## 查询结果

**营业部**:{营业部全称}(营业部编码:{营业部编码})
**指标**:{指标别名}(指标ID:{指标ID})
**期间**:{数据日期}
**查询类型**:指标值/排名/均值

**结果**:{展示值} {单位} / 第{排名}名 / {均值} {单位}

---

**查询路径**:
- 步骤1:营业部明细表 → 匹配方式={匹配方式} → 营业部编码={营业部编码}
- 步骤2:指标信息表 → 匹配方式={精确/模糊} → 指标ID={指标ID}
- 步骤3:{事实表名} → 条件=机构编号={营业部编码}+指标ID+日期+维度/类型 → 返回{行数}行
- 步骤4:单位换算表 → 单位={营业部单位} → 原始值×换算比例 = 展示值

特殊场景处理

场景1:用户同时问排名和均值

→ 查排名(步骤3B)和查均值(步骤3C)分别执行,各自按规则组装条件。排名结果跳过步骤4,均值结果执行步骤4。

场景2:对比两个营业部

→ 步骤1执行两次(分别获取两个营业部的营业部编码),后续步骤分别查询。

场景3:用户问"人均"但没有指定维度

→ 人均=分析维度4,直接查均值表(步骤3C)条件中加入分析维度=4。禁止自己查"人数"指标然后手动除

场景4:用户不指定日期

→ 查询事实表时按数据日期降序取最新一期,并在结果中标注"默认取最新期{数据日期}"。

场景5:指标名称找不到精确匹配

→ 步骤2模糊搜索后列出候选指标,告知用户每个候选的含义差异,请用户确认选择。禁止直接选择最相似的当作等价使用

场景6:营业部名称匹配到多条

→ 步骤1消歧处理:列出所有候选(营业部编码、营业部全称、所属分公司),请用户选择。禁止自行选定一条


常见错误清单(对照检查)

以下5个错误是历史测试中发现的高频问题,每次查询时必须自查是否犯过:

| 错误编号 | 错误描述 | 自查方法 | |----------|---------|---------| | E1 | 仅用指标ID查均值表或排名表,不指定分析维度/排名类型 | 检查步骤3的条件列表是否包含所有必填条件 | | E2 | 查排名不指定排名类型 | 检查排名查询条件中是否有排名类型字段 | | E3 | 查均值不指定分析维度 | 检查均值查询条件中是否有分析维度字段 | | E4 | 直接从事实表取指标别名代替指标ID | 检查步骤3是否使用了指标ID而非指标名称/别名 | | E5 | 用营业部名称过滤事实表 | 检查步骤3是否使用了**"机构编号"**(=步骤1的营业部编码),而非任何名称字段 |

每完成一次查询,必须对照此清单自查,确认未犯以上任一错误后再输出最终答案。