将所有员工的工资提高 5.65% %,其他员工提高 4.93% %
Increase all employees' salaries for a classification by 5.65% percent, others by 4.93% percent
我目前在学校,我有一个个人项目需要将我选择的工作分类的所有员工增加 5.65%,其他人增加 4.93%。这是我目前所拥有的...
UPDATE Employee
SET Salary = Salary * 0.0565
WHERE EXISTS (
SELECT *
FROM Employee
INNER JOIN Job
ON Employee.Job_ID = job.Job_ID
AND job.Job_Classification = 'Retail Sales'
WHERE Job.Job_ID = Employee.Job_ID
);
我的问题是,有没有一种方法可以让每个人和同一脚本中的其他人都增加 5.65%?我觉得这是一件 IF THEN ELSE
的事情,但我不确定该怎么做。
考虑使用 case 语句。
基本语法为:
UPDATE Employees
SET Salary = CASE Classification WHEN 'Retail Sales' THEN Do 5.65% ELSE Do 4.93%
您很可能需要在您的更新中包含一个联接,以从职位 table 中获取分类。
上面的语法不正确,但应该给你足够的方向去进一步
正如@Christopher Trevor所说,应该是这样的:
UPDATE e
SET e.Salary =
case when job.Job_Classification = 'Retail Sales'
then e.Salary * 0.0565
else e.Salary * 0.0493
end
from Employee e
inner join Job job on job.Job_ID = e.Job_ID
我没有对此进行测试,因为您还没有发布表的架构。但它应该为您指明正确的方向。
我目前在学校,我有一个个人项目需要将我选择的工作分类的所有员工增加 5.65%,其他人增加 4.93%。这是我目前所拥有的...
UPDATE Employee
SET Salary = Salary * 0.0565
WHERE EXISTS (
SELECT *
FROM Employee
INNER JOIN Job
ON Employee.Job_ID = job.Job_ID
AND job.Job_Classification = 'Retail Sales'
WHERE Job.Job_ID = Employee.Job_ID
);
我的问题是,有没有一种方法可以让每个人和同一脚本中的其他人都增加 5.65%?我觉得这是一件 IF THEN ELSE
的事情,但我不确定该怎么做。
考虑使用 case 语句。
基本语法为:
UPDATE Employees
SET Salary = CASE Classification WHEN 'Retail Sales' THEN Do 5.65% ELSE Do 4.93%
您很可能需要在您的更新中包含一个联接,以从职位 table 中获取分类。
上面的语法不正确,但应该给你足够的方向去进一步
正如@Christopher Trevor所说,应该是这样的:
UPDATE e
SET e.Salary =
case when job.Job_Classification = 'Retail Sales'
then e.Salary * 0.0565
else e.Salary * 0.0493
end
from Employee e
inner join Job job on job.Job_ID = e.Job_ID
我没有对此进行测试,因为您还没有发布表的架构。但它应该为您指明正确的方向。