Mega Code Archive

 
Categories / Oracle PLSQL / Insert Delete Update
 

Update salary based on average salary

SQL> SQL> SQL> SQL> create table emp(   2           emp_no                 integer         primary key,   3           lastname               varchar2(20)    not null,   4           firstname              varchar2(15)    not null,   5           midinit                varchar2(1),   6           street                 varchar2(30),   7           city                   varchar2(20),   8           state                  varchar2(2),   9           zip                    varchar2(5),  10           shortZipCode                   varchar2(4),  11           area_code              varchar2(3),  12           phone                  varchar2(8),  13           salary                 number(5,2),  14           birthdate              date,  15           startDate              date,  16           title                  varchar2(20),  17           dept_no                integer,  18           mgr                    integer,  19           region                 number,  20           division               number,  21           total_sales            number  22  ); Table created. SQL> -- emp Table Inserts: SQL> insert into emp(emp_no, lastname, firstname, midinit, street, city, state, zip,shortZipCode, area_code, phone, birthdate, title)values   2                      (1,'Z','Joy','R','1 Ave','New York','NY','12122','2333','212','200-1111','12-nov-1962','President'); 1 row created. SQL> insert into emp(emp_no, lastname, firstname, midinit, street, city, state, zip,shortZipCode, area_code, phone, salary, birthdate, startDate,title, dept_no, mgr, region, division, total_sales)valu es   2                      (2,'X','Lucy','J','1 Street','New York','NY','43552','6633','212','234-4444',7.75,'21-mar-1976','1-feb-1994','Sales Manager',2,1,100,10,40000); 1 row created. SQL> insert into emp(emp_no, lastname, firstname, midinit, street, city, state, zip,shortZipCode, area_code, phone, salary, birthdate, startDate,title, dept_no, mgr, region, division, total_sales)valu es   2                      (3,'Y','Jordan','E','1 Drive','New York','NY','76822','8763','212','222-2222',7.75,'14-feb-1963','15-mar-1995','Sales Clerk',2,2,100,10,10000); 1 row created. SQL> SQL> select dept_no, lastname, salary from emp;    DEPT_NO LASTNAME                 SALARY ---------- -------------------- ----------            Z          2 X                          7.75          2 Y                          7.75 SQL> SQL> UPDATE emp e1   2     SET salary = 1.1 * (SELECT avg(salary) from emp e2 where e1.dept_no = e2.dept_no); 3 rows updated. SQL> SQL> SQL> drop table emp; Table dropped.