You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询:同事缺勤时员工任务分配逻辑实现

优化后的MySQL查询方案

要实现你需要的任务承接逻辑,核心是针对不同优先级的承接场景,逐一校验所有更高优先级负责人的缺勤状态,同时修正原查询里的逻辑分组问题(原查询的OR和AND优先级没处理好,会导致错误匹配)。

优化后的查询如下:

SELECT a.Assign
FROM assign_table a
LEFT JOIN employee_credentials pri_ec ON a.Pri = pri_ec.姓名
LEFT JOIN employee_credentials sec_ec ON a.Sec = sec_ec.姓名
LEFT JOIN employee_credentials ter_ec ON a.Ter = ter_ec.姓名
WHERE
    -- 自身作为主负责人的任务,无条件纳入
    a.Pri = 'Sally'
    OR
    -- 作为副负责人,仅当主负责人缺勤时承接
    (a.Sec = 'Sally' AND pri_ec.absent = 1)
    OR
    -- 作为第三负责人,仅当主、副负责人都缺勤时承接
    (a.Ter = 'Sally' AND pri_ec.absent = 1 AND sec_ec.absent = 1)
    OR
    -- 作为第四负责人,仅当主、副、第三负责人都缺勤时承接
    (a.Qua = 'Sally' AND pri_ec.absent = 1 AND sec_ec.absent = 1 AND ter_ec.absent = 1)
ORDER BY a.Assign;

关键说明:

  • 用LEFT JOIN关联employee_credentials表三次,分别获取主、副、第三负责人的缺勤状态,方便逐一校验。
  • 每个OR条件都用括号包裹,明确逻辑分组,避免AND/OR优先级导致的错误匹配(原查询就是因为没分组,导致逻辑混乱)。
  • 针对不同承接层级,严格校验所有更高优先级人员的absent=1(缺勤)状态,确保只有满足前置条件时才承接任务。

如果需要动态指定查询的员工(比如不是固定查Sally),可以把员工姓名替换成参数,适配不同场景。

内容的提问来源于stack exchange,提问作者user22573594

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:16:10