SQL ORACLE BASIC ASSIGNMENTS

7
ASSIGNMENT 3 AKASH JAIN (02) AND KOUSTAV CHOUDHURY (38)  ______________________ _____________JOINS______ _________________________ _________  _________________ #1. List deptno, dname along with total salary in each de part ment. SELECT D.DEPTNO,D.DNAME,TOTAL_ SAL FROM (SELECT DEPTNO,SUM(SAL) TOTAL_SAL FROM EMP GROUP BY DEPTNO) E INNER JOIN DE PT D ON E.DEPTNO=D.DEPTNO; DEPTNO DNAME TOTAL_SAL ---------- -------------- ---------- 10 ACCOUNTING 8750 20 RESEARCH 10875 30 SALES 9400  ______________________ _________________________ _________  _____________ #2 . List details from emp, dep t and sa lgrade table excludin g clerks and employees with grade 1. Order on their names. SELECT E.EMPNO,E.ENAME,E.JOB,E .MGR,E.HIREDATE,E.SAL,G.GRADE,E.COMM,D.DEPTNO,D.D N AME,D.LOC FROM (SELECT * FROM EMP WHERE JOB!='CLERK') E INNER JOIN DEPT D ON E.DEPTNO=D.DEPTNO INNER JOIN (SELECT * FROM SALGRADE WHERE GRADE!=1) G ON E.SAL BETWEEN G.LOSAL AND G.HISAL ORDER BY E.ENAME; EMPNO ENAME JOB MGR HIREDATE SAL GRADE COMM DEPTNO DNAME LOC ---------- ---------- --------- ---------- --------- ---------- ---------- ----- ----- ---------- --- 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 3 300 30 SALES CHICAGO 7698 BLAKE MANAGER 7839 01-MAY-81 2850 4 30 SALES CHICAGO 7782 CLARK MANAGER 7839 09-JUN-81 2450 4 10 ACCOUNTING NEW YORK 7902 FORD ANALYST 7566 03-DEC-81 3000 4 20 RESEARCH DALLAS 7566 JONES MANAGER 7839 02-APR-81 2975 4 20 RESEARCH DALLAS 7839 KING PRESIDENT 17-NOV-81 5000 5 10 ACCOUNTING NEW YORK 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 2 1400 30 SALES CHICAGO 7788 SCOTT ANALYST 7566 09-DEC-82 3000 4 20 RESEARCH DALLAS 7844 TURNER SALESMAN 7698 08-SEP-81 1500 3 0 30 SALES CHICAGO 7521 WARD SALESMAN 7698 22-FEB-81 1250 2 500 30 SALES CHICAGO 10 rows selected.  ______________________ _________________________ _________  _____________ #3. List employee with grade 3 or 4 SELECT E.EMPNO,E.ENAME,E.JOB,E .MGR,E.HIREDATE,E.SAL,G.GRADE,E.COMM,E.DEPTNO

Transcript of SQL ORACLE BASIC ASSIGNMENTS

Page 1: SQL ORACLE BASIC ASSIGNMENTS

7/27/2019 SQL ORACLE BASIC ASSIGNMENTS

http://slidepdf.com/reader/full/sql-oracle-basic-assignments 1/7

ASSIGNMENT 3AKASH JAIN (02) AND KOUSTAV CHOUDHURY (38)

 ___________________________________JOINS________________________________________  _________________ #1. List deptno, dname along with total salary in each department.

SELECT D.DEPTNO,D.DNAME,TOTAL_SALFROM (SELECT DEPTNO,SUM(SAL) TOTAL_SAL FROM EMP GROUP BY DEPTNO) E INNER JOIN DEPT DON E.DEPTNO=D.DEPTNO;

DEPTNO DNAME TOTAL_SAL---------- -------------- ----------

10 ACCOUNTING 875020 RESEARCH 1087530 SALES 9400

 ________________________________________________________________________________  _____________ #2. List details from emp, dept and salgrade table excluding clerks

and employees with grade 1. Order on their names.

SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,G.GRADE,E.COMM,D.DEPTNO,D.DNAME,D.LOCFROM (SELECT * FROM EMP WHERE JOB!='CLERK') E INNER JOIN DEPT D

ON E.DEPTNO=D.DEPTNOINNER JOIN (SELECT * FROM SALGRADE WHERE GRADE!=1) GON E.SAL BETWEEN G.LOSAL AND G.HISALORDER BY E.ENAME;

EMPNO ENAME JOB MGR HIREDATE SAL GRADECOMM DEPTNO DNAME LOC---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ---------- ---

7499 ALLEN SALESMAN 7698 20-FEB-81 1600 3300 30 SALES CHICAGO

7698 BLAKE MANAGER 7839 01-MAY-81 2850 430 SALES CHICAGO

7782 CLARK MANAGER 7839 09-JUN-81 2450 410 ACCOUNTING NEW YORK7902 FORD ANALYST 7566 03-DEC-81 3000 4

20 RESEARCH DALLAS7566 JONES MANAGER 7839 02-APR-81 2975 4

20 RESEARCH DALLAS7839 KING PRESIDENT 17-NOV-81 5000 5

10 ACCOUNTING NEW YORK7654 MARTIN SALESMAN 7698 28-SEP-81 1250 2

1400 30 SALES CHICAGO7788 SCOTT ANALYST 7566 09-DEC-82 3000 4

20 RESEARCH DALLAS7844 TURNER SALESMAN 7698 08-SEP-81 1500 3

0 30 SALES CHICAGO7521 WARD SALESMAN 7698 22-FEB-81 1250 2

500 30 SALES CHICAGO

10 rows selected. ________________________________________________________________________________  _____________ #3. List employee with grade 3 or 4

SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,G.GRADE,E.COMM,E.DEPTNO

Page 2: SQL ORACLE BASIC ASSIGNMENTS

7/27/2019 SQL ORACLE BASIC ASSIGNMENTS

http://slidepdf.com/reader/full/sql-oracle-basic-assignments 2/7

FROM EMP E INNER JOIN (SELECT * FROM SALGRADE WHERE GRADE=3 OR GRADE=4) GON E.SAL BETWEEN G.LOSAL AND G.HISAL;

EMPNO ENAME JOB MGR HIREDATE SAL GRADECOMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ----------

7499 ALLEN SALESMAN 7698 20-FEB-81 1600 3300 30

7844 TURNER SALESMAN 7698 08-SEP-81 1500 30 307566 JONES MANAGER 7839 02-APR-81 2975 4

207698 BLAKE MANAGER 7839 01-MAY-81 2850 4

307782 CLARK MANAGER 7839 09-JUN-81 2450 4

107788 SCOTT ANALYST 7566 09-DEC-82 3000 4

207902 FORD ANALYST 7566 03-DEC-81 3000 4

20

7 rows selected. ________________________________________________________________________________ 

 _____________ #4. List employees located in dallas.

SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,E.COMM,D.DEPTNO,D.DNAME,D.LOCFROM EMP E INNER JOIN (SELECT * FROM DEPT WHERE LOC='DALLAS') DON E.DEPTNO=D.DEPTNO;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DNAME LOC---------- ---------- --------- ---------- --------- ---------- ---------- ---------- --------------

7369 SMITH CLERK 7902 17-DEC-80 800

20 RESEARCH DALLAS7876 ADAMS CLERK 7788 12-JAN-83 110020 RESEARCH DALLAS

7902 FORD ANALYST 7566 03-DEC-81 300020 RESEARCH DALLAS

7788 SCOTT ANALYST 7566 09-DEC-82 300020 RESEARCH DALLAS

7566 JONES MANAGER 7839 02-APR-81 297520 RESEARCH DALLAS

 ________________________________________________________________________________  _____________ #5. List ename, job, sal, grade, dname with annual renumeration greater than36000

or any clerks.

SELECT E.ENAME,E.JOB,E.SAL,G.GRADE,E.COMM,D.DNAME,E.SAL*12+DECODE(E.COMM,NULL,0,E.COMM) ANNUALFROM EMP E INNER JOIN DEPT DON E.DEPTNO=D.DEPTNOINNER JOIN SALGRADE GON E.SAL BETWEEN G.LOSAL AND G.HISALWHERE E.JOB='CLERK' OR E.SAL*12+DECODE(E.COMM,NULL,0,E.COMM) > 36000;

Page 3: SQL ORACLE BASIC ASSIGNMENTS

7/27/2019 SQL ORACLE BASIC ASSIGNMENTS

http://slidepdf.com/reader/full/sql-oracle-basic-assignments 3/7

Page 4: SQL ORACLE BASIC ASSIGNMENTS

7/27/2019 SQL ORACLE BASIC ASSIGNMENTS

http://slidepdf.com/reader/full/sql-oracle-basic-assignments 4/7

24507876 ADAMS CLERK 1100 7788 SCOTT ANALYST

30007566 JONES MANAGER 2975 7839 KING PRESIDENT

50007782 CLARK MANAGER 2450 7839 KING PRESIDENT

50007698 BLAKE MANAGER 2850 7839 KING PRESIDENT

50007369 SMITH CLERK 800 7902 FORD ANALYST

3000

11 rows selected. ________________________________________________________________________________  _____________ #8. Find the job that was filled in first half of 1981

and the same job that was filled during second half of 1981

SELECT DISTINCT FH.JOBFROM EMP FH INNER JOIN EMP SHON FH.HIREDATE <= TO_DATE('30-06-1981','DD-MM-YYYY') AND SH.HIREDATE > TO_DATE('30-06-1981','DD-MM-YYYY');

JOB

---------CLERKMANAGERSALESMAN

 ________________________________________________________________________________  _____________ #9. Find all employees who joined the company before their manager

SELECT E.EMPNO,E.ENAME,E.JOB,E.HIREDATE,E.MGR,M.ENAME MGR_NAME,M.HIREDATE MGR_HIREDATE,M.JOB MGR_JOBFROM EMP E INNER JOIN EMP MON E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE;

EMPNO ENAME JOB HIREDATE MGR MGR_NAME MGR_HIRED MGR_JOB---------- ---------- --------- --------- ---------- ---------- --------- ---------

7499 ALLEN SALESMAN 20-FEB-81 7698 BLAKE 01-MAY-81 MANAGER

7521 WARD SALESMAN 22-FEB-81 7698 BLAKE 01-MAY-81 MANAGER

7566 JONES MANAGER 02-APR-81 7839 KING 17-NOV-81 PRESIDENT

7782 CLARK MANAGER 09-JUN-81 7839 KING 17-NOV-81 PRESIDENT

7698 BLAKE MANAGER 01-MAY-81 7839 KING 17-NOV-81 PRESID

ENT7369 SMITH CLERK 17-DEC-80 7902 FORD 03-DEC-81 ANALYS

T

6 rows selected.

 _________________________________________SUB-QUERIES____________________________  _____________ #10.List employees who are directly reporting to KING

Page 5: SQL ORACLE BASIC ASSIGNMENTS

7/27/2019 SQL ORACLE BASIC ASSIGNMENTS

http://slidepdf.com/reader/full/sql-oracle-basic-assignments 5/7

SELECT * FROM EMPWHERE MGR IN (SELECT EMPNO MGR FROM EMP WHERE ENAME='KING');

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7566 JONES MANAGER 7839 02-APR-81 297520

7782 CLARK MANAGER 7839 09-JUN-81 245010

7698 BLAKE MANAGER 7839 01-MAY-81 285030

 ________________________________________________________________________________  _____________ #11.List department with maximum average salary.

SELECT DEPTNO,AVG_SAL MAX_AVG_SALFROM (SELECT DEPTNO,AVG(SAL) AVG_SAL FROM EMP GROUP BY DEPTNO ORDER BY AVG_SAL DESC)WHERE ROWNUM=1;

DEPTNO MAX_AVG_SAL

---------- -----------10 2916.66667 ________________________________________________________________________________  _____________ #12.Find employees who earn highest salary in each job type.

SELECT *FROM EMPWHERE SAL >= ALL(SELECT MAX(SAL) HIGH_SAL FROM EMP GROUP BY JOB);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- -----

----- 7839 KING PRESIDENT 17-NOV-81 500010

 ________________________________________________________________________________  _____________ #13.List departments for which no employees exists.

SELECT *FROM DEPTWHERE DEPTNO NOT IN (SELECT DEPTNO FROM EMP GROUP BY DEPTNO);

DEPTNO DNAME LOC---------- -------------- -------------

40 OPERATIONS BOSTON ________________________________________________________________________________  _____________ #14.Analyze following query :

SELECT ENAME,SAL FROM EMP EWHERE 3 > (SELECT COUNT(*) FROM EMP

WHERE SAL > E.SAL)

ENAME SAL---------- ----------

Page 6: SQL ORACLE BASIC ASSIGNMENTS

7/27/2019 SQL ORACLE BASIC ASSIGNMENTS

http://slidepdf.com/reader/full/sql-oracle-basic-assignments 6/7

SCOTT 3000KING 5000FORD 3000

 ________________________________________________________________________________  _____________ #15.In which year did most people join the company. Display the year and no of employees

SELECT *FROM (SELECT TO_CHAR(HIREDATE,'YYYY') YEAR, COUNT(1) NO_OF_EMP FROM EMP

GROUP BY TO_CHAR(HIREDATE,'YYYY') ORDER BY NO_OF_EMP DESC)WHERE ROWNUM=1;

YEAR NO_OF_EMP---- ----------1981 10

 ________________________________________________________________________________  _____________ #16.Display the department details in which most employees are working.

SELECT *FROM DEPTWHERE DEPTNO=(SELECT DEPTNO FROM (SELECT DEPTNO,COUNT(1) NO_OF_EMP FROM EMP

GROUP BY DEPTNO ORDER BY NO_OF_EMP DESC) WHERE R

OWNUM=1);

DEPTNO DNAME LOC---------- -------------- -------------

30 SALES CHICAGO ________________________________________________________________________________  _____________ #17.Display the employee details under whom most employees are working.

SELECT *FROM EMPWHERE EMPNO=(SELECT MGR FROM (SELECT MGR,COUNT(1) NO_OF_EMP FROM EMP

GROUP BY MGR ORDER BY NO_OF_EMP DESC) WHERE ROWN

UM=1);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7698 BLAKE MANAGER 7839 01-MAY-81 285030

  ________________________________________VIEWS___________________________________  _____________ #18.Create a view which return department details

and all aggregate of each department in HR schema.

CREATE OR REPLACE VIEW AGGDEPTASSELECT D.DEPTNO,DNAME,LOC,NO_OF_EMP,SUM_SAL,MAX_SAL,AVG_SAL,MIN_SALFROM DEPT D LEFT JOIN (SELECT DEPTNO,COUNT(1) NO_OF_EMP,SUM(SAL) SUM_SAL,

MAX(SAL) MAX_SAL,AVG(SAL) AVG_SAL,MIN(SAL) MIN_SAL

FROM EMP GROUP BY DEPTNO) EON E.DEPTNO=D.DEPTNO;

Page 7: SQL ORACLE BASIC ASSIGNMENTS

7/27/2019 SQL ORACLE BASIC ASSIGNMENTS

http://slidepdf.com/reader/full/sql-oracle-basic-assignments 7/7

View created.

SQL> SELECT * FROM AGGDEPT;

DEPTNO DNAME LOC NO_OF_EMP SUM_SAL MAX_SAL AVG_ SAL MIN_SAL---------- -------------- ------------- ---------- ---------- ---------- ---------- ----------

10 ACCOUNTING NEW YORK 3 8750 5000 2916.66667 1300

20 RESEARCH DALLAS 5 10875 3000 2175 800

30 SALES CHICAGO 6 9400 2850 1566.66667 950

40 OPERATIONS BOSTON

 ________________________________________________________________________________  _____________ #19.Create a view which returns details of employees, departments

and respective locations for all the employees with employee_id < 100.

SQL> CREATE VIEW EMP_DEPT_DETAILS2 AS3 SELECT E.EMPNO,E.ENAME,E.DEPTNO,D.DNAME,D.LOC

4 FROM EMP E,DEPT D5 WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO<100;

View created.

SQL> SELECT * FROM EMP_DEPT_DETAILS;

no rows selected