Mysql 给所有经理加薪10%,除非工资超过100000美元;在这种情况下,只增加3%
嗨,我有以下数据库scheemaMysql 给所有经理加薪10%,除非工资超过100000美元;在这种情况下,只增加3%,mysql,sql,Mysql,Sql,嗨,我有以下数据库scheema employee (employee-name, street, city) works (employee-name, company-name, salary) company (company-name, city) manages (employee-name, manager-name) 我需要给第一银行公司的所有经理加薪10%,除非薪水超过10万美元;在这种情况下,只增加3% 我对上述问题提出了以下质疑 UPDATE wor
employee (employee-name, street, city)
works (employee-name, company-name, salary)
company (company-name, city)
manages (employee-name, manager-name)
我需要给第一银行公司的所有经理加薪10%,除非薪水超过10万美元;在这种情况下,只增加3%
我对上述问题提出了以下质疑
UPDATE works w, manages m
SET w.salary += (salary * 0.10)
WHERE w.employee-name = m.manager-name
AND w.company-name = ‘First Bank Corporation’
但是从查询中可以看出,我没有检查工资高于100000美元的情况。有人能告诉我怎么做吗?如果我理解正确,如果加薪后他们没有超过100K,他们需要加薪10%,在这种情况下,请使用此查询
SET w.salary *= case when salary > 1000000 then 1.03 else 1.10 end
UPDATE works w, manages m
SET w.salary += salary * case when salary+salary*0.10 > 1000000 then 0.03 else 0.10 end
WHERE w.employee-name = m.manager-name
AND w.company-name = ‘First Bank Corporation’
如果他们需要10%的加薪,如果他们目前低于100K,请使用以下方法:
UPDATE works w, manages m
SET w.salary += salary * case when salary > 1000000 then 0.03 else 0.10 end
WHERE w.employee-name = m.manager-name
AND w.company-name = ‘First Bank Corporation’
你应该添加一个案例陈述
UPDATE works w, manages m
SET w.salary = (CASE
WHEN (w.salary * 0.10) < 100000 THEN w.salary + (salary * 0.10)
ELSE w.salary + (salary * 0.03)
END CASE)
WHERE w.employee-name = m.manager-name
AND w.company-name = ‘First Bank Corporation’
更新工作w,管理m
设置w.salary=(大小写)
当(w.salary*0.10)<100000时,则w.salary+(salary*0.10)
其他w.工资+(工资*0.03)
(完)
其中w.employee-name=m.manager-name
w.company-name=‘第一银行公司’