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

如何在SQL中创建Count列并按月度总Count发放2000元奖金

考勤数据处理与奖金核算SQL实现

1. 新增考勤Count列

根据Hours列值生成Count列,有两种实用实现方式:

方式一:查询时动态计算(不修改原表)

适合仅在查询结果中展示Count值,无需调整表结构:

SELECT 
    *,
    CASE WHEN Hours >= 6 THEN 1 ELSE 0 END AS `Count`
FROM attendance_table;

方式二:永久新增列并赋值

如果需要将Count列持久化到表中:

-- 新增Count列
ALTER TABLE attendance_table ADD COLUMN `Count` INT;

-- 批量更新列值
UPDATE attendance_table
SET `Count` = CASE WHEN Hours >= 6 THEN 1 ELSE 0 END;

2. 月度奖金核算

先按员工和月份统计Totalcount,再筛选出符合条件的员工生成奖金记录:

-- 生成仅含符合奖金条件的核算结果
SELECT 
    employee_id,
    month,
    Totalcount,
    2000 AS bonus_amount
FROM (
    -- 统计每个员工每月的有效考勤天数(Count=1的总和)
    SELECT 
        employee_id,
        DATE_FORMAT(attendance_date, '%Y-%m') AS month,
        SUM(`Count`) AS Totalcount
    FROM attendance_table
    GROUP BY employee_id, DATE_FORMAT(attendance_date, '%Y-%m')
) AS monthly_summary
WHERE Totalcount >= 3;

如果需要包含所有员工的月度记录(即使无奖金),可调整为:

SELECT 
    employee_id,
    month,
    Totalcount,
    CASE WHEN Totalcount >= 3 THEN 2000 ELSE 0 END AS bonus_amount
FROM (
    SELECT 
        employee_id,
        DATE_FORMAT(attendance_date, '%Y-%m') AS month,
        SUM(`Count`) AS Totalcount
    FROM attendance_table
    GROUP BY employee_id, DATE_FORMAT(attendance_date, '%Y-%m')
) AS monthly_summary;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:20:51