更新onther表上的工资基数

时间:2016-05-26 06:00:52

标签: plsqldeveloper

我有两个表,第一个是emp(emp_id,名称,性别 - M或F),第二个是emp_sal(emp_id,地址,工资)。我想更新工资,如女性员工应增加10%男性员工应增加当前工资的15%

2 个答案:

答案 0 :(得分:0)

我们可以尝试以下查询.....

UPDATE  empd es set es.E_salary=case 
when(select eg.gender from emps eg where eg.empid=es.empid)='M'
THEN 
es.E_salary*0.1
else
es.E_salary*0.5
end;

答案 1 :(得分:-1)

DECLARE
CURSOR cur_emp
IS
SELECT * FROM emp;
rec_emp cur_emp%rowtype;
BEGIN
   OPEN cur_emp;
   LOOP
FETCH cur_emp INTO rec_emp;
EXIT WHEN cur_emp%notfound; 
IF rec_emp.gender = 'F'THEN
  UPDATE emp_sal SET sal = sal + (sal * 0.1) WHERE emp_id = rec_emp.emp_id;
elsif rec_emp.GENDER = 'M' THEN
  UPDATE emp_sal SET sal = sal + (sal * 0.15) WHERE emp_id = rec_emp.emp_id;
END IF;
END LOOP;
CLOSE cur_emp;