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

如何获取提前5天及以上到岗人员姓名?WITH子句使用遇问题

解决方法

核心逻辑是统计每位员工实际到岗日期早于计划到岗日期的天数总和,再筛选出总和≥5的人员,无需关联上下班签到数据。

假设HR_Timing表包含以下关键字段:

  • name:人员姓名
  • planned_start_date:计划到岗日期
  • actual_start_date:实际到岗日期

以下是修正后的SQL脚本:

WITH early_arrival_days AS (
    SELECT
        name,
        COUNT(*) AS total_early_days
    FROM HR_Timing
    -- 筛选实际到岗早于计划的记录
    WHERE actual_start_date < planned_start_date
    GROUP BY name
)
SELECT name
FROM early_arrival_days
WHERE total_early_days >= 5;

脚本说明

  • WITH子句部分:先过滤出所有提前到岗的记录,按人员分组统计符合条件的天数总和。
  • 主查询:从统计结果中筛选出提前到岗天数≥5的人员姓名。

如果你的表中直接存储了提前到岗天数字段(比如early_days,正值表示提前),可简化脚本:

WITH early_arrival_summary AS (
    SELECT
        name,
        SUM(early_days) AS total_early_days
    FROM HR_Timing
    WHERE early_days > 0
    GROUP BY name
)
SELECT name
FROM early_arrival_summary
WHERE total_early_days >= 5;

注意事项

  • 确保日期字段为数据库可识别的日期类型(如DATE/DATETIME),避免字符串比较错误。
  • 若员工有多条到岗记录(如岗位异动),上述脚本会累计所有提前天数;若只需统计首次到岗,需添加对应过滤条件(如WHERE is_first_arrival = 1,根据表结构调整)。

内容的提问来源于stack exchange,提问作者Soto A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:03:12