From b2c45d98322124f9cfd010a8556a6481a6fc9c26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E9=9B=A8?= Date: Fri, 24 Oct 2025 10:33:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E6=8F=90=E7=A4=BA=E8=AF=8D=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/template.yaml b/template.yaml index ee054a8..1bf7d13 100644 --- a/template.yaml +++ b/template.yaml @@ -77,12 +77,12 @@ template: 使用了函数(如 COUNT(), CAST(), SUM())的字段,必须为其指定一个英文别名。 计算占比或百分比时,结果保留两位小数,并以 '%' 符号结尾。示例:ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM table), 2) || '%' (PostgreSQL语法) 若查询结果包含枚举字段(如 gender=1,2),必须使用 CASE WHEN 语句将其转换为可读的标签。示例: SELECT CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' END AS "gender" - 重点!重点!重点!涉及查询orgs表时,部门存在多层级,必须递归查询。使用 start .. with 语法。递归语法示例: + 重点!重点!重点!涉及查询orgs表时,部门存在多层级,大部分需要递归查询。使用 start .. with 语法。递归语法示例: 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" - + 关联与限制 From 039b15341eb522489270f94a7dbd5bae3b7a1e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E9=9B=A8?= Date: Fri, 24 Oct 2025 11:06:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E6=8F=90=E7=A4=BA=E8=AF=8D=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F2=E4=BB=A5=E5=8F=8Abug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template.yaml | 1 + util/load_ddl_doc.py | 5 +- util/q_and_a_test1.py | 1690 ++++++++++++++++++++++------------------- 3 files changed, 897 insertions(+), 799 deletions(-) diff --git a/template.yaml b/template.yaml index b1aec11..e180e8c 100644 --- a/template.yaml +++ b/template.yaml @@ -84,6 +84,7 @@ template: WITH "name"||"shortname" LIKE '%xx中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' CONNECT BY PRIOR "id" = "parentid" + 当用户问题涉及查询是否时候。结果需要返回:是/否。而不是返回查询记录 关联与限制 diff --git a/util/load_ddl_doc.py b/util/load_ddl_doc.py index 6a3c3f4..3ced32e 100644 --- a/util/load_ddl_doc.py +++ b/util/load_ddl_doc.py @@ -28,9 +28,10 @@ def add_documentation(vn: CustomVanna): random.shuffle(dd) # for d in dd: # vn.add_question_sql(question=d['question'], sql=d['answer']) - for d in q_and_a_test1.question_and_answer: + ## tag 待定,容易过拟合 + for d in dd: vn.add_question_sql( - question=f"{d['question']} [分类:{d['category']}] [标签:{','.join(d['tags'])}]", + question=f"{d['question']}", sql=d['answer'] ) diff --git a/util/q_and_a_test1.py b/util/q_and_a_test1.py index 34f8625..c0a5b2f 100644 --- a/util/q_and_a_test1.py +++ b/util/q_and_a_test1.py @@ -2,703 +2,767 @@ import json # 按功能模块组织 question_and_answer = [ - { - "question": "张三的信息", - "answer": """ - SELECT "id" AS "ID", "code" AS "工号", "name" AS "姓名", - "internal_unit" AS "内部单位", "external_unit" AS "外部单位", - "phone_number" AS "手机号", "email" AS "邮箱", - CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' ELSE "gender" END AS "性别", - -- 人员类型转换逻辑 - CASE WHEN "person_type" = 'YG' THEN '正式员工' - WHEN "person_type" = 'PQ' THEN '劳务派遣人员' - ELSE "person_type" END AS "人员类型" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" - WHERE "dr" = 0 AND "name" = '张三' LIMIT 1000 - """, - "tags": ["员工", "基本信息", "单人员工"], - "category": "员工基本信息查询" - }, - { + { + "question": "张三的信息", + "answer": """ + SELECT "id" AS "ID", + "code" AS "工号", + "name" AS "姓名", + "internal_unit" AS "内部单位", + "external_unit" AS "外部单位", + "phone_number" AS "手机号", + "email" AS "邮箱", + CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' ELSE "gender" END AS "性别", + -- 人员类型转换逻辑 + CASE + WHEN "person_type" = 'YG' THEN '正式员工' + WHEN "person_type" = 'PQ' THEN '劳务派遣人员' + ELSE "person_type" END AS "人员类型" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" + WHERE "dr" = 0 + AND "name" = '张三' LIMIT 1000 + """, + "tags": ["员工", "基本信息", "单人员工"], + "category": "员工基本信息查询" + }, + { "question": "在研发基地工作的有哪些员工", "answer": ''' - SELECT "id" AS "id", - "code" AS "工号", - "name" AS "姓名", - "internal_unit" AS "内部单位", - "external_unit" AS "外部单位", - "office_address" AS "办公地点" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" - WHERE ("office_address" LIKE '%研发基地%' OR "office_city" LIKE '%研发基地%') - AND "dr" = '0' LIMIT 1000 - ''', - "tags": ["员工", "工作地", "条件筛选查询"], - "category": "员工基本信息查询" - }, - { - "question": "总共有多少员工", - "answer": """ - SELECT COUNT(1) AS "total_count" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" - WHERE "dr" = 0 LIMIT 1000 - """, - "tags": ["员工", "人数", "总体统计"], - "category":"员工统计与分析" - }, - { - "question": "XX中心下有多少员工", - "answer": """ - SELECT COUNT(*) - FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database - WHERE internal_dept 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") - """, - "tags": ["员工", "部门", "人数"], - "category": "员工统计与分析" - }, - { - "question": "XX中心下各个处室分别有多少人", - "answer": """ - SELECT o.name AS "处室名称", 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 - WHERE p.internal_dept 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 p.dr = 0 - GROUP BY o.name - ORDER BY "人数" DESC - LIMIT 1000 - """, - "tags": ["员工", "部门", "人数"], - "category": "员工统计与分析" - }, - { - "question": "XX中心下的XX管理处有多少人", - "answer": ''' - SELECT o.name AS "处室名称", 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 - WHERE p.internal_dept 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 p.dr = 0 - AND o.name LIKE '%XX管理处%' - GROUP BY o.name - ORDER BY "人数" DESC - LIMIT 1000 - ''', - "tags": ["员工", "部门", "人数"], - "category": "员工统计与分析" - }, - { - "question": "XX中心正式人员有多少,各个处室有多少?", - "answer": ''' - SELECT o.name AS "处室名称", 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 - WHERE p.person_type = 'YG' - AND p.dr = 0 - AND o.enable = 1 - AND o.dr = 0 - AND ( - o.id IN (SELECT "id" - FROM "IUAP_APDOC_BASEDOC"."org_orgs" START WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%') - AND "enable" = 1 - AND "dr" = 0 - CONNECT BY PRIOR "id" = "parentid" - ) - ) - GROUP BY o.name - ORDER BY "正式员工数量" DESC - LIMIT 1000; - ''', - "tags": ["员工", "部门", "人员类型", "正式员工", "处室分布"], - "category": "员工统计与分析" - }, - { - "question": "XX部门有哪些员工", - "answer": """ - SELECT p.id AS "id", p.code AS "employee_code", p.name AS "name", o.name AS "department_name" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id - WHERE p.dr = 0 AND o.enable = 1 AND o.dr = 0 AND o.id IN ( - SELECT id FROM "IUAP_APDOC_BASEDOC"."org_orgs" - START WITH ("name" LIKE '%XX%' OR "shortname" LIKE '%XX%') - AND "enable" = 1 AND "dr" = 0 - CONNECT BY PRIOR "id" = "parentid") - LIMIT 1000 - """, - "tags": ["员工", "部门", "列表查询"], - "category": "部门人员查询" - }, - { - "question": "XX综合部男员工有哪些人", - "answer": """ - SELECT p."id" AS "ID", p."code" AS "工号", p."name" AS "姓名", - CASE WHEN p."gender" = '1' THEN '男' - WHEN p."gender" = '2' THEN '女' END AS "性别", o."name" AS "部门名称" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE p."dr" = 0 AND p."gender" = '1' AND o."id" IN ( - SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs" - START WITH ("name" LIKE '%综合处%' OR "shortname" LIKE '%综合处%') - AND "enable" = 1 AND "dr" = 0 CONNECT BY PRIOR "id" = "parentid") - LIMIT 1000 - """, - "tags": ["员工", "性别", "部门", "列表查询"], - "category": "性别分布统计" - }, - { - "question": "XX综合部女员工有那些人", - "answer": """ - SELECT p."id" AS "id", p."code" AS "工号", p."name" AS "姓名", - CASE WHEN p."gender" = '1' THEN '男' - WHEN p."gender" = '2' THEN '女' END AS "性别", o."name" AS "部门名称" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE 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%' - CONNECT BY PRIOR "id" = "parentid") - AND p."dr" = 0 AND p."gender" = '2' - ORDER BY p."create_time" - DESC LIMIT 1000 - """, - "tags": ["员工", "性别", "部门"], - "category": "性别分布统计" - }, - { - "question": "XX部有多少员工,男女员工分别有多少", - "answer": """ - SELECT COUNT(*) AS "总人数", - SUM(CASE WHEN gender = '1' THEN 1 ELSE 0 END) AS "男员工数", - SUM(CASE WHEN gender = '2' THEN 1 ELSE 0 END) AS "女员工数" - FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p - WHERE p.internal_dept IN (SELECT "id" - FROM "IUAP_APDOC_BASEDOC"."org_orgs" START - WITH "name"||"shortname" LIKE '%XX部%' - CONNECT BY PRIOR "id" = "parentid" - ) - AND p.dr = 0 - LIMIT 1000; - """, - "tags": ["员工", "性别", "部门", "人数统计"], - "category": "性别分布统计" - }, - { - "question": "XX中心男女各多少人", - "answer": """ - SELECT SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数", - SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - WHERE p."internal_dept" IN (SELECT "id" - FROM "IUAP_APDOC_BASEDOC"."org_orgs" START - WITH "name" LIKE '%XX中心%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' - CONNECT BY PRIOR "id" = "parentid" - ) - AND p."dr" = 0 - LIMIT 1000; - """, - "tags": ["员工", "性别", "部门", "人数统计"], - "category": "性别分布统计" - }, - { - "question": "XX综合部女员工有多少", - "answer": """ - SELECT (SELECT COUNT(*) - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - WHERE p."internal_dept" 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 p."gender" = '2' - AND p."dr" = 0 - ) AS "女员工数" - """, - "tags": ["员工", "性别", "部门", "人数统计"], - "category": "性别分布统计" - }, - { - "question": "今年新入职XX部门的员工中,男女各有多少", - "answer": """ - SELECT SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数", - SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - WHERE p."internal_dept" IN ( - SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs" - START WITH "name" LIKE '%XX%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' - CONNECT BY PRIOR "id" = "parentid") - AND p."dr" = 0 AND YEAR(p."input_time") = 2025 - LIMIT 1000; - """, - "tags": ["员工", "性别", "部门", "人数统计"], - "category": "性别分布统计" - }, - { - "question": "XX部门博士和硕士分别有多少员工", - "answer": """ - SELECT COUNT(CASE WHEN p."highest_degree" = '3' THEN 1 END) AS "doctor_count", - COUNT(CASE WHEN p."highest_degree" = '2' THEN 1 END) AS "master_count" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE p."dr" = 0 AND p."internal_dept" 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") - LIMIT 1000 - """, - "tags": ["员工", "学历", "部门", "人数统计"], - "category": "学历分布统计" - }, - { - "question": "XX部门博士多少人", - "answer": ''' - SELECT COUNT(*) AS "博士人数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE p."internal_dept" 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 p."dr" = 0 - AND p."highest_degree" = '3' - LIMIT 1000 - ''', - "tags": ["员工", "学历", "部门", "人数统计"], - "category": "学历分布统计" - }, - { - "question": "博士分布在哪些部门,各有多少人", - "answer": """ - SELECT o."name" AS "部门名称", COUNT(*) AS "人数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE p."highest_degree" = '3' AND p."dr" = 0 AND o."dr" = 0 AND o."enable" = 1 AND o."code" LIKE '%CYJ%' - GROUP BY o."id", o."name" - ORDER BY COUNT(*) DESC LIMIT 1000 - """, - "tags": ["员工", "学历", "部门", "人数统计"], - "category": "学历分布统计" - }, - { - "question": "张三的年龄是多少", - "answer": """ - SELECT p."name" AS "name", EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "age" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - WHERE p."name" = '张三' AND p."dr" = 0 AND p."birthday" IS NOT NULL AND p."birthday" <> '' LIMIT 1; - """, - "tags": ["员工","个人", "年龄", "单人员工"], - "category": "年龄分析" - }, - { - "question": "查询XX部门的员工平均年龄", - "answer": """ - SELECT ROUND(AVG(2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT)), 2) AS "平均年龄" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE p."dr" = 0 - AND 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 p."birthday" IS NOT NULL - AND p."birthday" != '' - LIMIT 1000; - """, - "tags": ["员工", "部门", "年龄", "统计分析"], - "category": "年龄分析" - }, - { - "question": "XX部门年龄最小的员工是谁,多少岁?", - "answer": ''' - SELECT p."name" AS "姓名", - CAST(p."birthday" AS DATE) AS "出生日期", - EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "年龄" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - WHERE p."internal_dept" 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 p."dr" = 0 - AND p."birthday" IS NOT NULL - AND p."birthday" != '' - ORDER BY "年龄" ASC - LIMIT 1 - ''', - "tags": ["员工","个人", "部门", "年龄", "最值统计分析"], - "category": "年龄分析" - }, - { - "question": "XX中心员工年龄段分布图", - "answer": ''' - SELECT CASE - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后' - ELSE '其他年龄段' END AS "age_group", COUNT(*) AS "person_count" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - WHERE p."dr" = 0 AND p."birthday" IS NOT NULL AND p."birthday" != '' - AND p."internal_dept" IN ( - SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs" - START WITH "name" || "shortname" LIKE '%数信中心%' - AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' - CONNECT BY PRIOR "id" = "parentid" - ) - GROUP BY CASE WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后' - WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后' - ELSE '其他年龄段' END ORDER BY "age_group" ASC LIMIT 1000 + SELECT "id" AS "id", + "code" AS "工号", + "name" AS "姓名", + "internal_unit" AS "内部单位", + "external_unit" AS "外部单位", + "office_address" AS "办公地点" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" + WHERE ("office_address" LIKE '%研发基地%' OR "office_city" LIKE '%研发基地%') + AND "dr" = '0' LIMIT 1000 ''', - "tags": ["员工", "部门", "年龄", "分布统计"], - "category": "年龄分析" - }, - { - "question": "查询XX部下面的员工以及他们的年龄", - "answer": ''' - SELECT p."id" AS "员工ID", - p."name" AS "姓名", - o."name" AS "所属部门", - CAST(SUBSTR(p."birthday", 1, 4) AS INT) AS "出生年份", - 2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT) AS "年龄", - CASE WHEN p."gender" = '1' THEN '男' WHEN p."gender" = '2' THEN '女' END AS "性别" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE p."dr" = 0 - AND 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 p."birthday" IS NOT NULL - AND p."birthday" != '' - ORDER BY o."name" ASC, p."birthday" DESC - LIMIT 1000; - ''', - "tags": ["员工", "部门", "年龄"], - "category": "年龄分析" - }, - { - "question": "XX中心的张三九月份在岗天数", - "answer": """ - WITH dept_ids AS ( - SELECT id - FROM "IUAP_APDOC_BASEDOC"."org_orgs" - START WITH (name LIKE '%XX中心%' OR shortname LIKE '%XX中心%') - CONNECT BY PRIOR id = parentid - ) - SELECT p."code" AS "工号", - p."name" AS "姓名", - COUNT(CASE WHEN ps."status" = '1001' THEN 1 END) AS "在岗天数" - FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps - JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - ON ps."person_id" = p."code" - WHERE p."name" = '张三' - AND ps."date_value" LIKE '2025-09%' - AND ps."dr" = 0 - AND p."dr" = 0 - AND p."internal_dept" IN (SELECT id FROM dept_ids) - GROUP BY p."code", p."name" - LIMIT 1000; - """, - "tags": ["员工","个人", "部门", "考勤", "在岗天数"], - "category": "考勤管理" - }, - { - "question": "XX中心今天各个处室在岗人员数量", - "answer": ''' - SELECT o.name AS "处室名称", 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 - WHERE p.internal_dept IN (SELECT "id" - FROM "IUAP_APDOC_BASEDOC"."org_orgs" START + "tags": ["员工", "工作地", "条件筛选查询"], + "category": "员工基本信息查询" + }, + { + "question": "总共有多少员工", + "answer": """ + SELECT COUNT(1) AS "total_count" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" + WHERE "dr" = 0 LIMIT 1000 + """, + "tags": ["员工", "人数", "总体统计"], + "category": "员工统计与分析" + }, + { + "question": "XX中心下有多少员工", + "answer": """ + SELECT COUNT(*) + FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database + WHERE internal_dept 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") + """, + "tags": ["员工", "部门", "人数"], + "category": "员工统计与分析" + }, + { + "question": "XX中心下各个处室分别有多少人", + "answer": """ + SELECT o.name AS "处室名称", 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 + WHERE p.internal_dept 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 p.dr = 0 + GROUP BY o.name + ORDER BY "人数" DESC + LIMIT 1000 + """, + "tags": ["员工", "部门", "人数"], + "category": "员工统计与分析" + }, + { + "question": "XX中心下的XX管理处有多少人", + "answer": ''' + SELECT o.name AS "处室名称", 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 + WHERE p.internal_dept 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 p.dr = 0 + AND o.name LIKE '%XX管理处%' + GROUP BY o.name + ORDER BY "人数" DESC + LIMIT 1000 + ''', + "tags": ["员工", "部门", "人数"], + "category": "员工统计与分析" + }, + { + "question": "XX中心正式人员有多少,各个处室有多少?", + "answer": ''' + SELECT o.name AS "处室名称", 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 + WHERE p.person_type = 'YG' + AND p.dr = 0 + AND o.enable = 1 + AND o.dr = 0 + AND ( + o.id IN (SELECT "id" + FROM "IUAP_APDOC_BASEDOC"."org_orgs" START WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%') + AND "enable" = 1 + AND "dr" = 0 + CONNECT BY PRIOR "id" = "parentid" + ) + ) + GROUP BY o.name + ORDER BY "正式员工数量" DESC + LIMIT 1000; + ''', + "tags": ["员工", "部门", "人员类型", "正式员工", "处室分布"], + "category": "员工统计与分析" + }, + { + "question": "XX部门有哪些员工", + "answer": """ + SELECT p.id AS "id", p.code AS "employee_code", p.name AS "name", o.name AS "department_name" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id + WHERE p.dr = 0 + AND o.enable = 1 + AND o.dr = 0 + AND o.id IN (SELECT id + FROM "IUAP_APDOC_BASEDOC"."org_orgs" START + WITH ("name" LIKE '%XX%' OR "shortname" LIKE '%XX%') + AND "enable" = 1 AND "dr" = 0 + CONNECT BY PRIOR "id" = "parentid") + LIMIT 1000 + """, + "tags": ["员工", "部门", "列表查询"], + "category": "部门人员查询" + }, + { + "question": "XX综合部男员工有哪些人", + "answer": """ + SELECT p."id" AS "ID", + p."code" AS "工号", + p."name" AS "姓名", + CASE + WHEN p."gender" = '1' THEN '男' + WHEN p."gender" = '2' THEN '女' END AS "性别", + o."name" AS "部门名称" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE p."dr" = 0 + AND p."gender" = '1' + AND o."id" IN (SELECT "id" + FROM "IUAP_APDOC_BASEDOC"."org_orgs" START + WITH ("name" LIKE '%综合处%' OR "shortname" LIKE '%综合处%') + AND "enable" = 1 AND "dr" = 0 + CONNECT BY PRIOR "id" = "parentid") + LIMIT 1000 + """, + "tags": ["员工", "性别", "部门", "列表查询"], + "category": "性别分布统计" + }, + { + "question": "XX综合部女员工有那些人", + "answer": """ + SELECT p."id" AS "id", + p."code" AS "工号", + p."name" AS "姓名", + CASE + WHEN p."gender" = '1' THEN '男' + WHEN p."gender" = '2' THEN '女' END AS "性别", + o."name" AS "部门名称" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE 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%' + CONNECT BY PRIOR "id" = "parentid") + AND p."dr" = 0 + AND p."gender" = '2' + ORDER BY p."create_time" + DESC LIMIT 1000 + """, + "tags": ["员工", "性别", "部门"], + "category": "性别分布统计" + }, + { + "question": "XX部有多少员工,男女员工分别有多少", + "answer": """ + SELECT COUNT(*) AS "总人数", + SUM(CASE WHEN gender = '1' THEN 1 ELSE 0 END) AS "男员工数", + SUM(CASE WHEN gender = '2' THEN 1 ELSE 0 END) AS "女员工数" + FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p + WHERE p.internal_dept IN (SELECT "id" + FROM "IUAP_APDOC_BASEDOC"."org_orgs" START + WITH "name"||"shortname" LIKE '%XX部%' + CONNECT BY PRIOR "id" = "parentid" + ) + AND p.dr = 0 + LIMIT 1000; + """, + "tags": ["员工", "性别", "部门", "人数统计"], + "category": "性别分布统计" + }, + { + "question": "XX中心男女各多少人", + "answer": """ + SELECT SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数", + SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + WHERE p."internal_dept" IN (SELECT "id" + FROM "IUAP_APDOC_BASEDOC"."org_orgs" START + WITH "name" LIKE '%XX中心%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' + CONNECT BY PRIOR "id" = "parentid" + ) + AND p."dr" = 0 + LIMIT 1000; + """, + "tags": ["员工", "性别", "部门", "人数统计"], + "category": "性别分布统计" + }, + { + "question": "XX综合部女员工有多少", + "answer": """ + SELECT (SELECT COUNT(*) + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + WHERE p."internal_dept" 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 p."gender" = '2' + AND p."dr" = 0 + ) AS "女员工数" + """, + "tags": ["员工", "性别", "部门", "人数统计"], + "category": "性别分布统计" + }, + { + "question": "今年新入职XX部门的员工中,男女各有多少", + "answer": """ + SELECT SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数", + SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + WHERE p."internal_dept" IN (SELECT "id" + FROM "IUAP_APDOC_BASEDOC"."org_orgs" START + WITH "name" LIKE '%XX%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' + CONNECT BY PRIOR "id" = "parentid") + AND p."dr" = 0 + AND YEAR (p."input_time") = 2025 + LIMIT 1000; + """, + "tags": ["员工", "性别", "部门", "人数统计"], + "category": "性别分布统计" + }, + { + "question": "XX部门博士和硕士分别有多少员工", + "answer": """ + SELECT COUNT(CASE WHEN p."highest_degree" = '3' THEN 1 END) AS "doctor_count", + COUNT(CASE WHEN p."highest_degree" = '2' THEN 1 END) AS "master_count" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE p."dr" = 0 + AND p."internal_dept" 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") + LIMIT 1000 + """, + "tags": ["员工", "学历", "部门", "人数统计"], + "category": "学历分布统计" + }, + { + "question": "XX部门博士多少人", + "answer": ''' + SELECT COUNT(*) AS "博士人数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE p."internal_dept" 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 p."dr" = 0 + AND p."highest_degree" = '3' + LIMIT 1000 + ''', + "tags": ["员工", "学历", "部门", "人数统计"], + "category": "学历分布统计" + }, + { + "question": "博士分布在哪些部门,各有多少人", + "answer": """ + SELECT o."name" AS "部门名称", COUNT(*) AS "人数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE p."highest_degree" = '3' + AND p."dr" = 0 + AND o."dr" = 0 + AND o."enable" = 1 + AND o."code" LIKE '%CYJ%' + GROUP BY o."id", o."name" + ORDER BY COUNT(*) DESC LIMIT 1000 + """, + "tags": ["员工", "学历", "部门", "人数统计"], + "category": "学历分布统计" + }, + { + "question": "张三的年龄是多少", + "answer": """ + SELECT p."name" AS "name", + EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "age" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + WHERE p."name" = '张三' + AND p."dr" = 0 + AND p."birthday" IS NOT NULL + AND p."birthday" <> '' LIMIT 1; + """, + "tags": ["员工", "个人", "年龄", "单人员工"], + "category": "年龄分析" + }, + { + "question": "查询XX部门的员工平均年龄", + "answer": """ + SELECT ROUND(AVG(2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT)), 2) AS "平均年龄" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE p."dr" = 0 + AND 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 p."birthday" IS NOT NULL + AND p."birthday" != '' + LIMIT 1000; + """, + "tags": ["员工", "部门", "年龄", "统计分析"], + "category": "年龄分析" + }, + { + "question": "XX部门年龄最小的员工是谁,多少岁?", + "answer": ''' + SELECT p."name" AS "姓名", + CAST(p."birthday" AS DATE) AS "出生日期", + EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "年龄" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + WHERE p."internal_dept" 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 p."dr" = 0 + AND p."birthday" IS NOT NULL + AND p."birthday" != '' + ORDER BY "年龄" ASC + LIMIT 1 + ''', + "tags": ["员工", "个人", "部门", "年龄", "最值统计分析"], + "category": "年龄分析" + }, + { + "question": "XX中心员工年龄段分布图", + "answer": ''' + SELECT CASE + WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后' + WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND + CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后' + WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND + CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后' + WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND + CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后' + WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND + CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后' + ELSE '其他年龄段' END AS "age_group", + COUNT(*) AS "person_count" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + WHERE p."dr" = 0 + AND p."birthday" IS NOT NULL + AND p."birthday" != '' + AND p."internal_dept" 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 p.id IN ( + GROUP BY CASE WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后' + WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后' + WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后' + WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后' + WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后' + ELSE '其他年龄段' + END ORDER BY "age_group" ASC LIMIT 1000 + ''', + "tags": ["员工", "部门", "年龄", "分布统计"], + "category": "年龄分析" + }, + { + "question": "查询XX部下面的员工以及他们的年龄", + "answer": ''' + SELECT p."id" AS "员工ID", + p."name" AS "姓名", + o."name" AS "所属部门", + CAST(SUBSTR(p."birthday", 1, 4) AS INT) AS "出生年份", + 2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT) AS "年龄", + CASE WHEN p."gender" = '1' THEN '男' WHEN p."gender" = '2' THEN '女' END AS "性别" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE p."dr" = 0 + AND 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 p."birthday" IS NOT NULL + AND p."birthday" != '' + ORDER BY o."name" ASC, p."birthday" DESC + LIMIT 1000; + ''', + "tags": ["员工", "部门", "年龄"], + "category": "年龄分析" + }, + { + "question": "XX中心的张三九月份在岗天数", + "answer": """ + WITH dept_ids AS (SELECT id + FROM "IUAP_APDOC_BASEDOC"."org_orgs" START + WITH (name LIKE '%XX中心%' OR shortname LIKE '%XX中心%') + CONNECT BY PRIOR id = parentid + ) + SELECT p."code" AS "工号", + p."name" AS "姓名", + COUNT(CASE WHEN ps."status" = '1001' THEN 1 END) AS "在岗天数" + FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps + JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + ON ps."person_id" = p."code" + WHERE p."name" = '张三' + AND ps."date_value" LIKE '2025-09%' + AND ps."dr" = 0 + AND p."dr" = 0 + AND p."internal_dept" IN (SELECT id FROM dept_ids) + GROUP BY p."code", p."name" LIMIT 1000; + """, + "tags": ["员工", "个人", "部门", "考勤", "在岗天数"], + "category": "考勤管理" + }, + { + "question": "XX中心今天各个处室在岗人员数量", + "answer": ''' + SELECT o.name AS "处室名称", 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 + WHERE p.internal_dept 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 p.id 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 '%数信中心%' OR "shortname" LIKE '%数信中心%') - 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.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%' CONNECT BY PRIOR "id" = "parentid" - ) - AND ps."status" = '1003' - AND ps."date_value" LIKE '2025-10%' - AND p."dr" = 0 AND ps."dr" = 0 LIMIT 1000 - """, - "tags": ["员工", "个人","部门", "考勤", "休息天数"], - "category": "考勤管理" - }, - { - "question": "10月XX中心有哪些有员工请假", - "answer": ''' - SELECT p."id" AS "id", - p."code" AS "工号", - p."name" AS "姓名", - p."internal_unit" AS "内部单位", - p."external_unit" AS "外部单位", - CASE WHEN ps."status" = '1003' THEN '休假,请假' ELSE ps."status" END AS "状态" - 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 ps."status" = '1003' - AND ps."date_value" LIKE '2025-10%' - and p.internal_dept 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 p."dr" = 0 - AND ps."dr" = 0 LIMIT 1000 - ''', - "tags": ["员工", "部门", "考勤", "请假"], - "category": "考勤管理" - }, - { - "question": "数信部门9月有多少个人迟到", - "answer": ''' - SELECT p."id" AS "id", - p."code" AS "工号", - p."name" AS "姓名", - p."internal_unit" AS "内部单位", - p."external_unit" AS "外部单位", - CASE WHEN ps."status" = '1003' THEN '休假,请假' ELSE ps."status" END AS "状态" - 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 ps."status" = '1003' - AND ps."date_value" LIKE '2025-10%' - and p.internal_dept 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 p."dr" = 0 - AND ps."dr" = 0 LIMIT 1000 - ''', - "tags": ["员工", "部门", "考勤", "迟到"], - "category": "考勤管理" - }, - { - "question": "9月有哪些员工在休假", - "answer": ''' - SELECT DISTINCT p."id" AS "id", - p."code" AS "工号", - p."name" AS "姓名", - p."internal_unit" AS "内部单位", - p."external_unit" AS "外部单位" - 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 ps."status" = '1003' - AND ps."date_value" LIKE '2025-09%' LIMIT 1000 - ''', - "tags": ["员工", "考勤", "休假"], - "category": "考勤管理" - }, - { - "question": "张三 8月的考勤查询", - "answer": ''' - SELECT DISTINCT p."code" AS "工号", - p."name" AS "姓名", - p."internal_unit" AS "内部单位", - p."external_unit" AS "外部单位", - CASE - WHEN ps."status" = '1001' THEN '在岗' - WHEN ps."status" = '1002' THEN '出差' - WHEN ps."status" = '1003' THEN '休假,请假' - WHEN ps."status" = '1005' THEN '旷工' - WHEN ps."status" = '1006' THEN '迟到,早退' - WHEN ps."status" = '1007' THEN '休息日' - WHEN ps."status" = '4001' THEN 'am在岗pm缺勤' - WHEN ps."status" = '4002' THEN 'am缺勤pm在岗' - WHEN ps."status" = '6001' THEN 'am在岗pm早退' - WHEN ps."status" = '6002' THEN 'am迟到pm在岗' - WHEN ps."status" = '6004' THEN 'am迟到pm缺勤' - WHEN ps."status" = '4006' THEN 'am缺勤pm早退' END AS "人员状态", - ps."date_value" AS "日期" - FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps - JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code" - WHERE p."name" = '张三' - AND ps."date_value" LIKE '2025-08%' - AND ps."dr" = 0 - ORDER BY ps."date_value" DESC LIMIT 1000 - ''', - "tags": ["员工", "考勤", "个人"], - "category": "考勤管理" - }, - { - "question": "张三今天早上9点半之前,有打卡记录吗", - "answer": ''' - SELECT a."person_name" AS "姓名", - a."attendance_time" AS "考勤时间", - a."attendance_address" AS "考勤地址", - CASE - WHEN a."status" = 1 THEN '在岗' - WHEN a."status" = 2 THEN '出差' - WHEN a."status" = 3 THEN '休假' - END AS "状态", - CASE - WHEN a."enter_or_exit" = 1 THEN '进' - WHEN a."enter_or_exit" = 2 THEN '出' - END AS "进出类型" - FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a - WHERE a."person_name" = '张三' - AND a."attendance_time" >= '2025-10-16 00:00:00' - AND a."attendance_time" < '2025-10-16 09:30:00' - AND a."dr" = 0 - ORDER BY a."attendance_time" DESC LIMIT 1000 - ''', - "tags": ["员工", "考勤", "打卡记录", "个人", "时间段", "明细查询"], - "category": "考勤管理" - }, - { - "question": "XX中心员工最近三天谁天天迟到", - "answer": ''' - SELECT p."id" AS "id", p."code" AS "code", p."name" AS "name", o."name" AS "department_name" - 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" - INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o - ON p."internal_dept" = o."id" - WHERE ps."date_value" IN ('2025-10-20', '2025-10-21', '2025-10-22') - AND ps."status" = '1006' AND p."dr" = 0 AND ps."dr" = 0 AND o."dr" = 0 - AND o."enable" = 1 AND o."code" LIKE '%CYJ%' AND o."id" 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%' - CONNECT BY PRIOR "id" = "parentid" - ) - GROUP BY p."id", p."code", p."name", o."name" HAVING COUNT(*) = 3 LIMIT 1000 - ''', - "tags": ["员工", "考勤", "部门", "天数", "迟到"], - "category": "考勤管理" - }, - { - "question": "XX中心员工本周迟到两次及以上的人", - "answer": ''' - SELECT p."id" AS "id", p."code" AS "工号", p."name" AS "姓名", o."name" AS "部门", COUNT(ps."id") AS "迟到次数" - 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" - INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o - ON p."internal_dept" = o."id" - WHERE 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%' - CONNECT BY PRIOR "id" = "parentid" - ) - AND ps."status" = '1006' AND ps."date_value" - BETWEEN '2025-10-16' AND '2025-10-22' AND p."dr" = 0 - AND ps."dr" = 0 - GROUP BY p."id", p."code", p."name", o."name" - HAVING COUNT(ps."id") >= 2 - ORDER BY COUNT(ps."id") DESC LIMIT 1000 - ''', - "tags": ["员工", "考勤", "部门", "天数", "迟到","次数统计"], - "category": "考勤管理" - }, - { - "question": "来自联通的有多少员工", - "answer": """ - SELECT "id" AS "id", - "code" AS "工号", - "name" AS "姓名", - "external_unit" AS "外部单位" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" - WHERE "external_unit" LIKE '%联通%' LIMIT 1000 - """, - "tags": ["员工", "外部单位", "统计查询"], - "category": "外部单位统计" - }, - { - "question": "各个外部单位下的员工人数统计", - "answer": """ - SELECT "external_unit" AS "外部单位", COUNT(*) AS "员工人数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" - WHERE "external_unit" IS NOT NULL - AND "external_unit" != '' - GROUP BY "external_unit" - ORDER BY "员工人数" DESC LIMIT 1000 - """, - "tags": ["员工", "外部单位", "人数统计"], - "category": "外部单位统计" - }, - { - "question": "XX中心员工在林芝工作的天数", - "answer": ''' - SELECT p."code" AS "工号", p."name" AS "姓名", - COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" - LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac ON a."access_control_point" = ac."ac_point" - WHERE p."dr" = 0 AND a."dr" = 0 AND ac."region" = 5 AND a."attendance_time" >= '2025-09-01' - AND a."attendance_time" < '2025-10-01' - 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" - ) - GROUP BY p."code", p."name" ORDER BY "在林芝工作天数" DESC LIMIT 1000; - ''', - "tags": ["员工", "部门", "考勤", "工作地", "区域", "工作天数统计"], - "category": "工作地考勤统计分析" + ) + AND ps."status" = '1003' + AND ps."date_value" LIKE '2025-10%' + AND p."dr" = 0 + AND ps."dr" = 0 LIMIT 1000 + """, + "tags": ["员工", "个人", "部门", "考勤", "休息天数"], + "category": "考勤管理" + }, + { + "question": "10月XX中心有哪些有员工请假", + "answer": ''' + SELECT p."id" AS "id", + p."code" AS "工号", + p."name" AS "姓名", + p."internal_unit" AS "内部单位", + p."external_unit" AS "外部单位", + CASE WHEN ps."status" = '1003' THEN '休假,请假' ELSE ps."status" END AS "状态" + 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 ps."status" = '1003' + AND ps."date_value" LIKE '2025-10%' + and p.internal_dept 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 p."dr" = 0 + AND ps."dr" = 0 LIMIT 1000 + ''', + "tags": ["员工", "部门", "考勤", "请假"], + "category": "考勤管理" + }, + { + "question": "xx部门9月有多少个人迟到", + "answer": ''' + SELECT p."id" AS "id", + p."code" AS "工号", + p."name" AS "姓名", + p."internal_unit" AS "内部单位", + p."external_unit" AS "外部单位", + CASE WHEN ps."status" = '1003' THEN '休假,请假' ELSE ps."status" END AS "状态" + 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 ps."status" = '1003' + AND ps."date_value" LIKE '2025-10%' + and p.internal_dept 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 p."dr" = 0 + AND ps."dr" = 0 LIMIT 1000 + ''', + "tags": ["员工", "部门", "考勤", "迟到"], + "category": "考勤管理" + }, + { + "question": "9月有哪些员工在休假", + "answer": ''' + SELECT DISTINCT p."id" AS "id", + p."code" AS "工号", + p."name" AS "姓名", + p."internal_unit" AS "内部单位", + p."external_unit" AS "外部单位" + 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 ps."status" = '1003' + AND ps."date_value" LIKE '2025-09%' LIMIT 1000 + ''', + "tags": ["员工", "考勤", "休假"], + "category": "考勤管理" + }, + { + "question": "张三 8月的考勤查询", + "answer": ''' + SELECT DISTINCT p."code" AS "工号", + p."name" AS "姓名", + p."internal_unit" AS "内部单位", + p."external_unit" AS "外部单位", + CASE + WHEN ps."status" = '1001' THEN '在岗' + WHEN ps."status" = '1002' THEN '出差' + WHEN ps."status" = '1003' THEN '休假,请假' + WHEN ps."status" = '1005' THEN '旷工' + WHEN ps."status" = '1006' THEN '迟到,早退' + WHEN ps."status" = '1007' THEN '休息日' + WHEN ps."status" = '4001' THEN 'am在岗pm缺勤' + WHEN ps."status" = '4002' THEN 'am缺勤pm在岗' + WHEN ps."status" = '6001' THEN 'am在岗pm早退' + WHEN ps."status" = '6002' THEN 'am迟到pm在岗' + WHEN ps."status" = '6004' THEN 'am迟到pm缺勤' + WHEN ps."status" = '4006' THEN 'am缺勤pm早退' END AS "人员状态", + ps."date_value" AS "日期" + FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps + JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code" + WHERE p."name" = '张三' + AND ps."date_value" LIKE '2025-08%' + AND ps."dr" = 0 + ORDER BY ps."date_value" DESC LIMIT 1000 + ''', + "tags": ["员工", "考勤", "个人"], + "category": "考勤管理" + }, + { + "question": "张三今天早上9点半之前,有打卡记录吗", + "answer": ''' + SELECT a."person_name" AS "姓名", + a."attendance_time" AS "考勤时间", + a."attendance_address" AS "考勤地址", + CASE + WHEN a."status" = 1 THEN '在岗' + WHEN a."status" = 2 THEN '出差' + WHEN a."status" = 3 THEN '休假' + END AS "状态", + CASE + WHEN a."enter_or_exit" = 1 THEN '进' + WHEN a."enter_or_exit" = 2 THEN '出' + END AS "进出类型" + FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a + WHERE a."person_name" = '张三' + AND a."attendance_time" >= '2025-10-16 00:00:00' + AND a."attendance_time" < '2025-10-16 09:30:00' + AND a."dr" = 0 + ORDER BY a."attendance_time" DESC LIMIT 1000 + ''', + "tags": ["员工", "考勤", "打卡记录", "个人", "时间段", "明细查询"], + "category": "考勤管理" + }, + { + "question": "XX中心员工最近三天谁天天迟到", + "answer": ''' + SELECT p."id" AS "id", p."code" AS "code", p."name" AS "name", o."name" AS "department_name" + 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" + INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o + ON p."internal_dept" = o."id" + WHERE ps."date_value" IN ('2025-10-20', '2025-10-21', '2025-10-22') + AND ps."status" = '1006' + AND p."dr" = 0 + AND ps."dr" = 0 + AND o."dr" = 0 + AND o."enable" = 1 + AND o."code" LIKE '%CYJ%' + AND o."id" 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%' + CONNECT BY PRIOR "id" = "parentid" + ) + GROUP BY p."id", p."code", p."name", o."name" + HAVING COUNT (*) = 3 LIMIT 1000 + ''', + "tags": ["员工", "考勤", "部门", "天数", "迟到"], + "category": "考勤管理" + }, + { + "question": "XX中心员工本周迟到两次及以上的人", + "answer": ''' + SELECT p."id" AS "id", + p."code" AS "工号", + p."name" AS "姓名", + o."name" AS "部门", + COUNT(ps."id") AS "迟到次数" + 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" + INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o + ON p."internal_dept" = o."id" + WHERE 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%' + CONNECT BY PRIOR "id" = "parentid" + ) + AND ps."status" = '1006' + AND ps."date_value" + BETWEEN '2025-10-16' + AND '2025-10-22' + AND p."dr" = 0 + AND ps."dr" = 0 + GROUP BY p."id", p."code", p."name", o."name" + HAVING COUNT (ps."id") >= 2 + ORDER BY COUNT (ps."id") DESC LIMIT 1000 + ''', + "tags": ["员工", "考勤", "部门", "天数", "迟到", "次数统计"], + "category": "考勤管理" + }, + { + "question": "来自联通的有多少员工", + "answer": """ + SELECT "id" AS "id", + "code" AS "工号", + "name" AS "姓名", + "external_unit" AS "外部单位" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" + WHERE "external_unit" LIKE '%联通%' LIMIT 1000 + """, + "tags": ["员工", "外部单位", "统计查询"], + "category": "外部单位统计" + }, + { + "question": "各个外部单位下的员工人数统计", + "answer": """ + SELECT "external_unit" AS "外部单位", COUNT(*) AS "员工人数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" + WHERE "external_unit" IS NOT NULL + AND "external_unit" != '' + GROUP BY "external_unit" + ORDER BY "员工人数" DESC LIMIT 1000 + """, + "tags": ["员工", "外部单位", "人数统计"], + "category": "外部单位统计" + }, + { + "question": "XX中心员工在林芝工作的天数", + "answer": ''' + SELECT p."code" AS "工号", + p."name" AS "姓名", + COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" + LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac + ON a."access_control_point" = ac."ac_point" + WHERE p."dr" = 0 + AND a."dr" = 0 + AND ac."region" = 5 + AND a."attendance_time" >= '2025-09-01' + AND a."attendance_time" < '2025-10-01' + 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%' + CONNECT BY PRIOR "id" = "parentid" + ) + GROUP BY p."code", p."name" + ORDER BY "在林芝工作天数" DESC LIMIT 1000; + ''', + "tags": ["员工", "部门", "考勤", "工作地", "区域", "工作天数统计"], + "category": "工作地考勤统计分析" - }, - { - "question": "查询张三9月在林芝的打卡记录", - "answer": ''' + }, + { + "question": "查询张三9月在林芝的打卡记录", + "answer": ''' SELECT a."person_name" AS "姓名", a."person_id" AS "人员ID", a."attendance_time" AS "考勤时间", @@ -716,10 +780,11 @@ question_and_answer = [ WHEN b."region" = 2 THEN '成都' WHEN b."region" = 3 THEN '秭归' WHEN b."region" = 4 THEN '拉萨' - WHEN b."region" = 5 THEN '林芝' END AS "地区", b."ac_point" AS "门禁点" + WHEN b."region" = 5 THEN '林芝' END AS "地区", + b."ac_point" AS "门禁点" FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a - JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b - ON a."access_control_point" = b."ac_point" + JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b + ON a."access_control_point" = b."ac_point" WHERE a."person_name" = '张三' AND b."region" = 5 AND a."attendance_time" >= '2025-09-01' @@ -727,115 +792,146 @@ question_and_answer = [ < '2025-10-01' AND a."dr" = 0 ORDER BY a."attendance_time" DESC LIMIT 1000 - ''', - "tags": ["员工", "个人","考勤", "工作地", "区域", "打卡统计"], - "category": "工作地考勤统计分析" - }, - { - "question": "张三9月在林芝工作有多少天", - "answer": ''' - SELECT count(distinct (TO_CHAR(a."attendance_time", 'yyyy-MM-dd'))) as count - FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b - ON a."access_control_point" = b."ac_point" - - WHERE a."person_name" = '张三' - and b.region=5 - AND a."attendance_time" >= '2025-09-01' - AND a."attendance_time" - < '2025-10-01' - AND a."dr" = 0 LIMIT 1000 - ''', - "tags": ["员工","个人", "考勤", "工作地", "区域", "工作天数"], - "category": "工作地考勤统计分析" - }, - { - "question": "张三在藏多少天了", - "answer": ''' - SELECT COUNT(DISTINCT TO_CHAR(a.attendance_time, 'yyyy-MM-dd')) AS days_in_tibet - FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a - LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b - ON a.access_control_point = b.ac_point - WHERE a.person_name = '张三' AND b.region IN (4,5,6,7,8) - AND a.dr = 0 AND a.attendance_time >= '2025-01-01' - AND a.attendance_time < '2025-10-24' LIMIT 1000 - ''', - "tags": ["员工", "个人", "考勤", "工作地", "区域", "工作天数"], - "category": "工作地考勤统计分析" - }, - { - "question": "张三最早在藏是哪一天", - "answer": ''' - SELECT TO_CHAR(a.attendance_time, 'yyyy-MM-dd') AS earliest_date - FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a - JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b - ON a.access_control_point = b.ac_point - WHERE a.person_name = '张三' AND b.region IN (4,5,6,7,8) - AND a.dr = 0 ORDER BY a.attendance_time ASC LIMIT 1 - ''', - "tags": ["员工", "个人", "考勤", "工作地", "区域", "最早在藏时间"], - "category": "工作地考勤统计分析" - }, - { - "question": "张三从5月到10月每个月分别在藏多长时间", - "answer": ''' - SELECT TO_CHAR(a.attendance_time, 'yyyy-MM') AS month, COUNT(DISTINCT TO_CHAR(a.attendance_time, 'yyyy-MM-dd')) AS tibet_days - FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a - LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area ac ON a.access_control_point = ac.ac_point - WHERE a.person_name = '张三' - AND a.dr = 0 - AND ac.region IN (4,5) - AND a.attendance_time >= '2025-05-01' - AND a.attendance_time < '2025-11-01' - GROUP BY TO_CHAR(a.attendance_time, 'yyyy-MM') - ORDER BY TO_CHAR(a.attendance_time, 'yyyy-MM') ASC - LIMIT 1000 - ''', - "tags": ["员工", "个人", "考勤", "工作地", "区域", "每月在藏天数"], - "category": "工作地考勤统计分析" - }, - { - "question": "XX中心在林芝最长时间的是谁,待了多少天", - "answer": ''' - SELECT p."code" AS "工号", p."name" AS "姓名", COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" - LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac ON a."access_control_point" = ac."ac_point" - WHERE p."dr" = 0 AND a."dr" = 0 AND ac."region" = 5 - 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" - ) - GROUP BY p."code", p."name" - ORDER BY "在林芝工作天数" DESC - LIMIT 1; - ''', - "tags": ["员工", "个人", "考勤", "工作地", "区域", "天数","最值"], - "category": "工作地考勤统计分析" - }, - { - "question": "XX中心的员工九月在林芝工作的天数排名", - "answer": ''' - SELECT p."code" AS "工号", p."name" AS "姓名", COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" - FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p - LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" - LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac ON a."access_control_point" = ac."ac_point" - WHERE p."dr" = 0 AND a."dr" = 0 AND ac."region" = 5 - 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%' - CONNECT BY PRIOR "id" = "parentid" - ) - AND TO_CHAR(a."attendance_time", 'yyyy-MM') = '2025-09' - GROUP BY p."code", p."name" - ORDER BY "在林芝工作天数" DESC - LIMIT 1000; - ''', - "tags": ["员工", "个人", "考勤", "工作地", "区域", "天数", "排名"], - "category": "工作地考勤统计分析" - }, + ''', + "tags": ["员工", "个人", "考勤", "工作地", "区域", "打卡统计"], + "category": "工作地考勤统计分析" + }, + { + "question": "张三9月在林芝工作有多少天", + "answer": ''' + SELECT count(distinct (TO_CHAR(a."attendance_time", 'yyyy-MM-dd'))) as count + FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b + ON a."access_control_point" = b."ac_point" + + WHERE a."person_name" = '张三' + and b.region=5 + AND a."attendance_time" >= '2025-09-01' + AND a."attendance_time" + < '2025-10-01' + AND a."dr" = 0 LIMIT 1000 + ''', + "tags": ["员工", "个人", "考勤", "工作地", "区域", "工作天数"], + "category": "工作地考勤统计分析" + }, + { + "question": "张三在藏多少天了", + "answer": ''' + SELECT COUNT(DISTINCT TO_CHAR(a.attendance_time, 'yyyy-MM-dd')) AS days_in_tibet + FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a + LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b + ON a.access_control_point = b.ac_point + WHERE a.person_name = '张三' + AND b.region IN (4, 5, 6, 7, 8) + AND a.dr = 0 + AND a.attendance_time >= '2025-01-01' + AND a.attendance_time < '2025-10-24' LIMIT 1000 + ''', + "tags": ["员工", "个人", "考勤", "工作地", "区域", "工作天数"], + "category": "工作地考勤统计分析" + }, + { + "question": "张三最早在藏是哪一天", + "answer": ''' + SELECT TO_CHAR(a.attendance_time, 'yyyy-MM-dd') AS earliest_date + FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a + JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b + ON a.access_control_point = b.ac_point + WHERE a.person_name = '张三' + AND b.region IN (4, 5, 6, 7, 8) + AND a.dr = 0 + ORDER BY a.attendance_time ASC LIMIT 1 + ''', + "tags": ["员工", "个人", "考勤", "工作地", "区域", "最早在藏时间"], + "category": "工作地考勤统计分析" + }, + { + "question": "张三从5月到10月每个月分别在藏多长时间", + "answer": ''' + SELECT TO_CHAR(a.attendance_time, 'yyyy-MM') AS month, COUNT(DISTINCT TO_CHAR(a.attendance_time, 'yyyy-MM-dd')) AS tibet_days + FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a + LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area ac + ON a.access_control_point = ac.ac_point + WHERE a.person_name = '张三' + AND a.dr = 0 + AND ac.region IN (4 + , 5) + AND a.attendance_time >= '2025-05-01' + AND a.attendance_time + < '2025-11-01' + GROUP BY TO_CHAR(a.attendance_time, 'yyyy-MM') + ORDER BY TO_CHAR(a.attendance_time, 'yyyy-MM') ASC + LIMIT 1000 + ''', + "tags": ["员工", "个人", "考勤", "工作地", "区域", "每月在藏天数"], + "category": "工作地考勤统计分析" + }, + { + "question": "XX中心在林芝最长时间的是谁,待了多少天", + "answer": ''' + SELECT p."code" AS "工号", + p."name" AS "姓名", + COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" + LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac + ON a."access_control_point" = ac."ac_point" + WHERE p."dr" = 0 + AND a."dr" = 0 + AND ac."region" = 5 + 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%' + CONNECT BY PRIOR "id" = "parentid" + ) + GROUP BY p."code", p."name" + ORDER BY "在林芝工作天数" DESC + LIMIT 1; + ''', + "tags": ["员工", "个人", "考勤", "工作地", "区域", "天数", "最值"], + "category": "工作地考勤统计分析" + }, + { + "question": "XX中心的员工九月在林芝工作的天数排名", + "answer": ''' + SELECT p."code" AS "工号", + p."name" AS "姓名", + COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" + FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" + LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac + ON a."access_control_point" = ac."ac_point" + WHERE p."dr" = 0 + AND a."dr" = 0 + AND ac."region" = 5 + 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%' + CONNECT BY PRIOR "id" = "parentid" + ) + AND TO_CHAR(a."attendance_time" + , 'yyyy-MM') = '2025-09' + GROUP BY p."code", p."name" + ORDER BY "在林芝工作天数" DESC + LIMIT 1000; + ''', + "tags": ["员工", "个人", "考勤", "工作地", "区域", "天数", "排名"], + "category": "工作地考勤统计分析" + }, { + "question": "张三10月份是否有迟到", + "answer": ''' + SELECT CASE WHEN COUNT(*) > 0 THEN '是' ELSE '否' END AS "是否迟到" + FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps + JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code" + WHERE p."name" = '张三' + AND ps."status" = '1006' + AND ps."date_value" LIKE '2025-10%' + AND ps."dr" = 0 + AND p."dr" = 0 + ''', + "tags": ["员工", "个人", "考勤"], + "category": "考勤" + } ] -