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

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -