Files
sqlbot_agent/util/q_and_a_dict.py

279 lines
15 KiB
Python
Raw Normal View History

2025-09-28 16:44:58 +08:00
question_and_answer = [
2025-10-14 10:31:00 +08:00
2025-09-28 16:44:58 +08:00
{"question": "所有员工男女各有多少人",
"answer": '''
SELECT CASE WHEN "gender" = '1' THEN '' WHEN "gender" = '2' THEN '' END AS "gender",
COUNT(*) AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "dr" = 0
GROUP BY "gender"
ORDER BY "gender" ASC LIMIT 1000
'''
},
{
2025-10-14 10:31:00 +08:00
"question": "外部单位是联通下面有哪些员工",
2025-09-28 16:44:58 +08:00
"answer": '''
SELECT "id" AS "id",
"code" AS "工号",
"name" AS "姓名",
2025-10-14 10:31:00 +08:00
2025-09-28 16:44:58 +08:00
"external_unit" AS "外部单位"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
2025-10-14 10:31:00 +08:00
WHERE
"external_unit" LIKE '%联通%' LIMIT 1000
2025-09-28 16:44:58 +08:00
'''
},
{
"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
'''
},
{
"question": "联通的员工8月份有哪些迟到旷工的",
"answer": '''
SELECT DISTINCT p."code" AS "工号",
p."name" AS "姓名",
p."internal_unit" AS "内部单位",
p."external_unit" AS "外部单位",
CASE
WHEN ps."status" = '1006' THEN '迟到,早退'
WHEN ps."status" = '1005' THEN '旷工' 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."internal_unit" LIKE '%联通%' OR p."external_unit" LIKE '%联通%')
AND ps."status" IN ('1005', '1006')
AND ps."date_value" LIKE '2025-08%'
AND ps."dr" = 0
ORDER BY ps."date_value" DESC LIMIT 1000
'''
},
{
"question": "博士和硕士分别有哪些员工",
"answer": '''
SELECT DISTINCT "name" AS "姓名",
"code" AS "工号",
"internal_unit" AS "内部单位",
"external_unit" AS "外部单位",
CASE
WHEN "highest_degree" = '1' THEN '学士学位'
WHEN "highest_degree" = '2' THEN '硕士学位'
WHEN "highest_degree" = '3' THEN '博士学位'
WHEN "highest_degree" = '4' THEN '' END AS "最高学位"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "highest_degree" IN ('2', '3')
AND "dr" = '0'
ORDER BY "最高学位", "姓名" LIMIT 1000
'''
}, {
"question": "8月份在藏超过10天的有哪些员工",
"answer": '''
SELECT DISTINCT p."code" AS "工号",
p."name" AS "姓名",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit" END AS "单位",
COUNT(ps."id") 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 ps."is_in_tibet" = 1
AND ps."dr" = 0
AND p."dr" = 0
AND ps."date_value" LIKE '2025-08%'
GROUP BY p."code", p."name",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit" END
HAVING COUNT(ps."id") > 10
ORDER BY COUNT(ps."id") DESC LIMIT 1000
'''
},
{
"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
'''
},
{
"question": "8月份有多人迟到",
"answer": '''
SELECT count(distinct person_id)
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
WHERE ps."status" = '1006'
AND ps."date_value" LIKE '2025-08%'
AND ps."dr" = 0 LIMIT 1000
'''
},
{
"question": "负责智能体相关工作的是哪些员工",
"answer": '''
SELECT "id" AS "id",
"code" AS "工号",
"name" AS "姓名",
"internal_unit" AS "内部单位",
"external_unit" AS "外部单位",
"work_content" AS "工作内容"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "work_content" LIKE '%智能体%' LIMIT 1000
'''
2025-10-14 10:31:00 +08:00
}, {
2025-09-28 16:44:58 +08:00
"question": "9月旷工迟到分别有多少人",
"answer": '''
SELECT CASE WHEN "status" = '1006' THEN '迟到' WHEN "status" = '1005' THEN '旷工' END AS "status_name",
COUNT(DISTINCT "person_id") AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status"
WHERE "status" IN ('1006', '1005')
AND "date_value" LIKE '2025-09%'
AND "dr" = 0
GROUP BY "status"
ORDER BY "status" LIMIT 1000
'''
2025-10-14 10:31:00 +08:00
}, {
2025-09-28 16:44:58 +08:00
"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
'''
2025-10-14 10:31:00 +08:00
},
{
"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" = 0 THEN '在岗'
WHEN a."status" = 1 THEN '出差'
WHEN a."status" = 2 THEN '休假' END AS "状态",
CASE
WHEN a."enter_or_exit" = 0 THEN ''
WHEN a."enter_or_exit" = 1
THEN '' END AS "进出类型",
CASE
2025-10-14 11:02:44 +08:00
WHEN b."region" = 1 THEN '北京'
2025-10-14 10:31:00 +08:00
WHEN b."region" = 2 THEN '成都'
WHEN b."region" = 3 THEN '秭归'
WHEN b."region" = 5 THEN '林芝' END AS "地区",
2025-10-14 11:02:44 +08:00
AS "门禁点"
2025-10-14 10:31:00 +08:00
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
'''
},{
"question": "查询张三9月份有多少天在岗",
"answer": '''
SELECT p."code" AS "工号",
p."name" AS "姓名",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit"
END 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
GROUP BY p."code", p."name",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit"
END LIMIT 1000
'''
},{
"question": "数信中心 部门下有多少员工",
"answer": '''
select count(*)
from YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database
where internal_dept in (select id
from IUAP_APDOC_BASEDOC.org_orgs
where parentid in
(select id from IUAP_APDOC_BASEDOC.org_orgs where name like '数信中心'))
'''
},
{
"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
'''
},
{
"question": "数信中心下各个处室分别有多少人",
"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 o.parentid IN (SELECT id FROM IUAP_APDOC_BASEDOC.org_orgs WHERE name LIKE '数信中心')
AND p.dr = 0
GROUP BY o.name
ORDER BY "人数" DESC LIMIT 1000
'''
2025-10-14 11:02:44 +08:00
},{
"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 a."attendance_time" >= '2025-09-01'
AND a."attendance_time"
< '2025-10-01'
AND a."dr" = 0 LIMIT 1000
'''
2025-09-28 16:44:58 +08:00
}
]