Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 给所有经理加薪10%,除非工资超过100000美元;在这种情况下,只增加3%_Mysql_Sql - Fatal编程技术网

Mysql 给所有经理加薪10%,除非工资超过100000美元;在这种情况下,只增加3%

Mysql 给所有经理加薪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

嗨,我有以下数据库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 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=‘第一银行公司’