Files
sqlbot_agent/util/q_and_a_test1.py
2025-10-24 17:05:03 +08:00

938 lines
50 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 "外部单位",
"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 '%xx中心%'
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
''',
"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.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
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.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'
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": '''
SELECT a."person_name" AS "姓名",
a."person_id" AS "人员ID",
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" = 0 THEN ''
WHEN a."enter_or_exit" = 1
THEN '' END AS "进出类型",
CASE
WHEN b."region" = 1 THEN '北京'
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 "门禁点"
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" = 5
AND a."attendance_time" >= '2025-09-01'
AND a."attendance_time"
< '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 '%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": "考勤"
}
]