diff --git a/template.yaml b/template.yaml
index e180e8c..418e40a 100644
--- a/template.yaml
+++ b/template.yaml
@@ -54,6 +54,9 @@ template:
生成的SQL必须避免与数据库关键字冲突。
注意列名定义和使用的先后顺序,例如:SELECT阶段定义了列名,如果GROUP BY阶段先与SELECT阶段执行时,是不许在GROUP BY阶段引用列名的。
在ORDER BY、GROUP BY、WHERE子句中不要使用SELECT中定义的别名
+ 当SELECT中同时包含聚合列和非聚合列时,需要在GROUP BY中指定所有非聚合列
+ 递归 WITH 子句必须具有列别名列表
+ CONNECT BY子查询是独立的,无法访问外部查询的表别名,因此涉及CONNECT BY子查询时,里面禁止使用表别名
数据查询与排序
@@ -115,6 +118,10 @@ template:
若用户提问中提及参考SQL,需先判断该SQL是否为一个合法的、只读的查询语句。
忽略问题中提到的“数据源名称”或“数据源描述”等无关信息,聚焦于核心的业务需求。
+
+ 图表字段注意事项
+ 基于参考SQL的查询结果,请确保图表配置中的value字段与SQL结果字段别名完全一致。例如SELECT "external_unit" AS "外部单位" 图表配置的value应为“外部单位”而非“external_unit”。
+
### 以下 块帮助你理解问题及返回格式,**请勿将此块内的任何表结构用于回答用户的问题**。
@@ -185,10 +192,6 @@ template:
数信中心建设处规划发展部综合处
这些都可能是单位的名称,属于内部部门
-
- external_unitexternal_dept
- 这些直接是外部单位和外部部门的字段,值是名称,非编号
-
@@ -247,9 +250,15 @@ template:
你需要在JSON内生成一个图表的标题,放在"title"字段内,这个标题需要尽量精简
+
+ 基于参考SQL的查询结果,请确保图表配置中的value字段与SQL结果字段别名完全一致。例如SELECT "external_unit" AS "外部单位" 图表配置的value应为“外部单位”而非“external_unit”
+
涉及查询男女性别比例时建议采用表格或者柱状图展示,禁止采用饼状图
+
+ 表格作为保底配置,当生成某中图表配置有困难时一律用表格
+
如果需要表格,JSON格式应为:
{{"type":"table", "title": "标题", "columns": [{{"name":"{lang}字段名1", "value": "SQL 查询列 1(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, {{"name": "{lang}字段名 2", "value": "SQL 查询列 2(有别名用别名,去掉外层的反引号、双引号、方括号)"}}]}}
diff --git a/util/q_and_a_test1.py b/util/q_and_a_test1.py
index c0a5b2f..629bf2d 100644
--- a/util/q_and_a_test1.py
+++ b/util/q_and_a_test1.py
@@ -468,54 +468,53 @@ question_and_answer = [
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
CONNECT BY PRIOR "id" = "parentid"
- )
- AND p.id IN (
+ )
+ AND p.code IN (
SELECT person_id
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status"
WHERE status = '1001'
- AND date_value = TO_CHAR(SYSDATE
- , 'yyyy-MM-dd')
- AND dr = 0)
- AND p.dr = 0
+ AND date_value = TO_CHAR(SYSDATE, 'yyyy-MM-dd')
+ AND dr = 0)
+ AND p.dr = 0
GROUP BY o.name
ORDER BY "人数" DESC
- LIMIT 1000
- ''',
- "tags": ["员工", "部门", "考勤", "在岗人数"],
- "category": "考勤管理"
- },
- {
- "question": "XX部门昨天在岗人员数量",
- "answer": '''
- SELECT COUNT(p.id) AS "人数"
- FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
- JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id
- JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" s ON p.id = s.person_id
- WHERE o.id IN (SELECT id
- FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
- WITH "name" || "shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
- CONNECT BY PRIOR "id" = "parentid")
- AND s.status = '1001'
- AND s.date_value = TO_CHAR(SYSDATE - 1
- , 'yyyy-MM-dd')
- AND s.dr = 0
- AND p.dr = 0 LIMIT 1000
- ''',
- "tags": ["员工", "部门", "考勤", "在岗人数"],
- "category": "考勤管理"
- },
- {
- "question": "XX中心的李四十月份休息了多少天",
- "answer": """
- SELECT COUNT(*) AS rest_days
- FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
- INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
- ON p."code" = ps."person_id"
- WHERE p."name" = '谭杰明'
- AND p."internal_dept" IN (SELECT "id"
- FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
- WITH ("name" LIKE '%xx中心%' OR "shortname" LIKE '%xx中心%')
- AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%'
+ LIMIT 1000
+ ''',
+ "tags": ["员工", "部门", "考勤", "在岗人数"],
+ "category": "考勤管理"
+ },
+ {
+ "question": "XX部门昨天在岗人员数量",
+ "answer": '''
+ SELECT COUNT(p.id) AS "人数"
+ FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
+ JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id
+ JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" s ON p.code = s.person_id
+ WHERE o.id IN (SELECT id
+ FROM "IUAP_APDOC_BASEDOC"."org_orgs"
+ START WITH "name" || "shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
+ CONNECT BY PRIOR "id" = "parentid")
+ AND s.status = '1001'
+ AND s.date_value = TO_CHAR(SYSDATE - 1,
+ 'yyyy-MM-dd')
+ AND s.dr = 0
+ AND p.dr = 0 LIMIT 1000
+ ''',
+ "tags": ["员工", "部门", "考勤", "在岗人数"],
+ "category": "考勤管理"
+ },
+ {
+ "question": "XX中心的李四十月份休息了多少天",
+ "answer": """
+ SELECT COUNT(*) AS rest_days
+ FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
+ INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
+ ON p."code" = ps."person_id"
+ WHERE p."name" = '谭杰明'
+ AND p."internal_dept" IN (
+ SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
+ START WITH ("name" LIKE '%数信中心%' OR "shortname" LIKE '%数信中心%')
+ AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%'
CONNECT BY PRIOR "id" = "parentid"
)
AND ps."status" = '1003'
@@ -935,3 +934,4 @@ question_and_answer = [
}
]
+