部門 40 と 70 の従業員の給与を更新する必要があります。部門 40 のすべての従業員は 10% 増加し、部門 70 の従業員は 15% 増加します。
部門 70 の従業員が 1 人いて、給与が 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;
/
誰かがこの問題を解決するのを手伝ってくれますか? ありがとう