sql - Update records of one table using data from another table -


i've 2 tables.

table 1: employees

eid name    gender 1   peter   m 2   john    m 3   melissa f 

table 2: salary

eid salary 1   6000 2   8000 3   10000 

i need raise salary of male employees 10% , female employees 15%.

below query i've used can't achieve required result in oracle11g.

merge salary using employees on  salary.eid = employees.eid when matched update set     salary.salary = 1.1*salary employee.gender = 'm' ,     salary.salary = 1.15*salary employee.gender = 'f'; 

i got below error message:

sql error: ora-00969: missing on keyword 00969. 00000 - "missing on keyword" *cause:
*action:

there 2 things need consider in snippet provided.

  1. on clause should accompanied "()".
  2. where clause in update statement not correct. hope snippet helps.

    merge salary using employees  on (salary.eid = employees.eid) when matched   update   set salary.salary = decode(employee.gender,'m',1.1*salary,'f',1.15*salary) ; 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -