我需要更新部门 40 和 70 员工的工资。部门 40 的所有员工将增加 10%,而部门 70 的员工将增加 15%。
我有 1 名来自 70 部门的员工,他的薪水为 10000,因此他的工资将增加 15%。我预计他的工资会变成 11500,但它变成了 13225。我不明白为什么。部门 40 的员工加薪是正确的,只有部门 70 的员工是错误的。
这是 pl/sql 块..
SET serveroutput ON
DECLARE
CURSOR cur_emp
IS
SELECT * FROM employees WHERE department_id = 40 OR department_id = 70;
rec_emp cur_emp%rowtype;
BEGIN
OPEN cur_emp;
LOOP
FETCH cur_emp INTO rec_emp;
IF rec_emp.department_id = 40 THEN
UPDATE employees
SET salary = salary + (salary * 0.1)
WHERE employee_id = rec_emp.employee_id;
elsif rec_emp.department_id = 70 THEN
UPDATE employees
SET salary = salary + (salary * 0.15)
WHERE employee_id = rec_emp.employee_id;
END IF;
EXIT
WHEN cur_emp%notfound;
END LOOP;
CLOSE cur_emp;
END;
/
谁能帮我找出这个问题?谢谢