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

请求修正UPDATE关联查询:为无奖金员工发放2%薪资奖金

问题分析与修正方案

原SQL存在以下核心问题:

  • 直接更新聚合查询结果:聚合后的子查询属于不可更新视图,无法执行UPDATE操作
  • 分组字段不合理:用first_name分组可能因重名导致逻辑错误,应使用唯一标识employee_id
  • 逻辑混淆:bon是聚合计算的临时字段,并非实际表中可修改的字段,需求需针对bonus_1表的真实数据操作

方案1:更新bonus_1中已存在但bonus_amount为NULL的记录

若员工在bonus_1已有记录但奖金金额为空,执行以下SQL更新:

UPDATE bonus_1 b
JOIN employee_1 e ON b.employee_id = e.employee_id
SET b.bonus_amount = e.salary * 0.02
WHERE b.bonus_amount IS NULL;

方案2:为从未获得奖金的员工插入新奖金记录

若员工在bonus_1中无任何记录(从未获得奖金),执行以下SQL插入:

INSERT INTO bonus_1 (employee_id, bonus_amount)
SELECT e.employee_id, e.salary * 0.02
FROM employee_1 e
LEFT JOIN bonus_1 b ON e.employee_id = b.employee_id
WHERE b.employee_id IS NULL;

内容的提问来源于stack exchange,提问作者4PS18IS039 SAMARTH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:15:29