You are on page 1of 7

ASSIGNMENT 3

AKASH JAIN (02) AND KOUSTAV CHOUDHURY (38)


___________________________________JOINS________________________________________
_________________
#1.
List deptno, dname along with total salary in each department.
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, 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.DN
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
COMM
DEPTNO DNAME
---------- ---------- ------------- ---------- --7499 ALLEN
SALESMAN
300
30 SALES
7698 BLAKE
MANAGER
30 SALES
7782 CLARK
MANAGER
10 ACCOUNTING
7902 FORD
ANALYST
20 RESEARCH
7566 JONES
MANAGER
20 RESEARCH
7839 KING
PRESIDENT
10 ACCOUNTING
7654 MARTIN
SALESMAN
1400
30 SALES
7788 SCOTT
ANALYST
20 RESEARCH
7844 TURNER
SALESMAN
0
30 SALES
7521 WARD
SALESMAN
500
30 SALES

MGR HIREDATE
SAL
GRADE
LOC
---------- --------- ---------- ---------- ----7698
CHICAGO
7839
CHICAGO
7839
NEW YORK
7566
DALLAS
7839
DALLAS
NEW YORK
7698
CHICAGO
7566
DALLAS
7698
CHICAGO
7698
CHICAGO

20-FEB-81

1600

01-MAY-81

2850

09-JUN-81

2450

03-DEC-81

3000

02-APR-81

2975

17-NOV-81

5000

28-SEP-81

1250

09-DEC-82

3000

08-SEP-81

1500

22-FEB-81

1250

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

FROM EMP E INNER JOIN (SELECT * FROM SALGRADE WHERE GRADE=3 OR GRADE=4) G
ON E.SAL BETWEEN G.LOSAL AND G.HISAL;
EMPNO ENAME
COMM
DEPTNO
---------- -------------- ---------7499 ALLEN
300
30
7844 TURNER
0
30
7566 JONES
20
7698 BLAKE
30
7782 CLARK
10
7788 SCOTT
20
7902 FORD
20

JOB

MGR HIREDATE

SAL

GRADE

--------- ---------- --------- ---------- ---------- ----SALESMAN

7698 20-FEB-81

1600

SALESMAN

7698 08-SEP-81

1500

MANAGER

7839 02-APR-81

2975

MANAGER

7839 01-MAY-81

2850

MANAGER

7839 09-JUN-81

2450

ANALYST

7566 09-DEC-82

3000

ANALYST

7566 03-DEC-81

3000

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.LO
C
FROM EMP E INNER JOIN (SELECT * FROM DEPT WHERE LOC='DALLAS') D
ON E.DEPTNO=D.DEPTNO;
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
D
EPTNO DNAME
LOC
---------- ---------- --------- ---------- --------- ---------- ---------- --------- -------------7369 SMITH
CLERK
7902 17-DEC-80
800
20 RESEARCH
DALLAS
7876 ADAMS
CLERK
7788 12-JAN-83
1100
20 RESEARCH
DALLAS
7902 FORD
ANALYST
7566 03-DEC-81
3000
20 RESEARCH
DALLAS
7788 SCOTT
ANALYST
7566 09-DEC-82
3000
20 RESEARCH
DALLAS
7566 JONES
MANAGER
7839 02-APR-81
2975
20 RESEARCH
DALLAS
________________________________________________________________________________
_____________
#5.
List ename, job, sal, grade, dname with annual renumeration greater than
36000
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) ANNUAL
FROM EMP E INNER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO
INNER JOIN SALGRADE G
ON E.SAL BETWEEN G.LOSAL AND G.HISAL
WHERE E.JOB='CLERK' OR E.SAL*12+DECODE(E.COMM,NULL,0,E.COMM) > 36000;

ENAME
JOB
SAL
GRADE
COMM DNAME
ANNUAL
---------- --------- ---------- ---------- ---------- -------------- ---------MILLER
CLERK
1300
2
ACCOUNTING
15600
KING
PRESIDENT
5000
5
ACCOUNTING
60000
SMITH
CLERK
800
1
RESEARCH
9600
ADAMS
CLERK
1100
1
RESEARCH
13200
JAMES
CLERK
950
1
SALES
11400
________________________________________________________________________________
_____________
#6.
List employee and department details for department 30 and 40.
SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,E.COMM,D.DEPTNO,D.DNAME,D.LO
C
FROM (SELECT * FROM EMP WHERE DEPTNO=30 OR DEPTNO=40) E INNER JOIN (SELECT * FRO
M DEPT WHERE DEPTNO=30 OR DEPTNO=40) D
ON E.DEPTNO=D.DEPTNO;
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
D
EPTNO DNAME
LOC
---------- ---------- --------- ---------- --------- ---------- ---------- --------- -------------7499 ALLEN
SALESMAN
7698 20-FEB-81
1600
300
30 SALES
CHICAGO
7521 WARD
SALESMAN
7698 22-FEB-81
1250
500
30 SALES
CHICAGO
7654 MARTIN
SALESMAN
7698 28-SEP-81
1250
1400
30 SALES
CHICAGO
7698 BLAKE
MANAGER
7839 01-MAY-81
2850
30 SALES
CHICAGO
7844 TURNER
SALESMAN
7698 08-SEP-81
1500
0
30 SALES
CHICAGO
7900 JAMES
CLERK
7698 03-DEC-81
950
30 SALES
CHICAGO
6 rows selected.
________________________________________________________________________________
_____________
#7.
List all employees who earn less than their managers. List their manager
s details also.
SELECT E.EMPNO,E.ENAME,E.JOB,E.SAL,E.MGR,M.ENAME MGR_NAME,M.JOB MGR_JOB,M.SAL MG
R_SAL
FROM EMP E INNER JOIN EMP M
ON E.MGR=M.EMPNO AND E.SAL<M.SAL;
EMPNO
R_SAL
-------------7499
2850
7521
2850
7900
2850
7844
2850
7654
2850
7934

ENAME

JOB

SAL

MGR MGR_NAME

MGR_JOB

MG

---------- --------- ---------- ---------- ---------- --------- ----ALLEN

SALESMAN

1600

7698 BLAKE

MANAGER

WARD

SALESMAN

1250

7698 BLAKE

MANAGER

JAMES

CLERK

950

7698 BLAKE

MANAGER

TURNER

SALESMAN

1500

7698 BLAKE

MANAGER

MARTIN

SALESMAN

1250

7698 BLAKE

MANAGER

MILLER

CLERK

1300

7782 CLARK

MANAGER

2450
7876 ADAMS

CLERK

1100

7788 SCOTT

ANALYST

7566 JONES

MANAGER

2975

7839 KING

PRESIDENT

7782 CLARK

MANAGER

2450

7839 KING

PRESIDENT

7698 BLAKE

MANAGER

2850

7839 KING

PRESIDENT

7369 SMITH

CLERK

800

7902 FORD

ANALYST

3000
5000
5000
5000
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.JOB
FROM EMP FH INNER JOIN EMP SH
ON FH.HIREDATE <= TO_DATE('30-06-1981','DD-MM-YYYY') AND SH.HIREDATE > TO_DATE('
30-06-1981','DD-MM-YYYY');
JOB
--------CLERK
MANAGER
SALESMAN
________________________________________________________________________________
_____________
#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_HI
REDATE,M.JOB MGR_JOB
FROM EMP E INNER JOIN EMP M
ON E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE;
EMPNO
B
-----------7499
R
7521
R
7566
ENT
7782
ENT
7698
ENT
7369
T

ENAME

JOB

HIREDATE

MGR MGR_NAME

MGR_HIRED MGR_JO

---------- --------- --------- ---------- ---------- --------- -----ALLEN

SALESMAN 20-FEB-81

7698 BLAKE

01-MAY-81 MANAGE

WARD

SALESMAN 22-FEB-81

7698 BLAKE

01-MAY-81 MANAGE

JONES

MANAGER

02-APR-81

7839 KING

17-NOV-81 PRESID

CLARK

MANAGER

09-JUN-81

7839 KING

17-NOV-81 PRESID

BLAKE

MANAGER

01-MAY-81

7839 KING

17-NOV-81 PRESID

SMITH

CLERK

17-DEC-80

7902 FORD

03-DEC-81 ANALYS

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

SELECT * FROM EMP


WHERE MGR IN (SELECT EMPNO MGR FROM EMP WHERE ENAME='KING');
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
D
EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7566 JONES
MANAGER
7839 02-APR-81
2975
20
7782 CLARK
MANAGER
7839 09-JUN-81
2450
10
7698 BLAKE
MANAGER
7839 01-MAY-81
2850
30
________________________________________________________________________________
_____________
#11.List department with maximum average salary.
SELECT DEPTNO,AVG_SAL MAX_AVG_SAL
FROM (SELECT DEPTNO,AVG(SAL) AVG_SAL FROM EMP GROUP BY DEPTNO ORDER BY AVG_SAL D
ESC)
WHERE ROWNUM=1;
DEPTNO MAX_AVG_SAL
---------- ----------10 2916.66667
________________________________________________________________________________
_____________
#12.Find employees who earn highest salary in each job type.
SELECT *
FROM EMP
WHERE SAL >= ALL(SELECT MAX(SAL) HIGH_SAL FROM EMP GROUP BY JOB);
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
D
EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7839 KING
PRESIDENT
17-NOV-81
5000
10
________________________________________________________________________________
_____________
#13.List departments for which no employees exists.
SELECT *
FROM DEPT
WHERE 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 E
WHERE 3 > (SELECT COUNT(*) FROM EMP
WHERE SAL > E.SAL)
ENAME
SAL
---------- ----------

SCOTT
3000
KING
5000
FORD
3000
________________________________________________________________________________
_____________
#15.In which year did most people join the company. Display the year and no of e
mployees
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 DEPT
WHERE 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 EMP
WHERE 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
D
EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7698 BLAKE
MANAGER
7839 01-MAY-81
2850
30
________________________________________VIEWS___________________________________
_____________
#18.Create a view which return department details
and all aggregate of each department in HR schema.
CREATE OR REPLACE VIEW AGGDEPT
AS
SELECT D.DEPTNO,DNAME,LOC,NO_OF_EMP,SUM_SAL,MAX_SAL,AVG_SAL,MIN_SAL
FROM 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) E
ON E.DEPTNO=D.DEPTNO;

View created.
SQL> SELECT * FROM AGGDEPT;
DEPTNO DNAME
SAL
MIN_SAL
---------- ---------------- ---------10 ACCOUNTING
667
1300
20 RESEARCH
175
800
30 SALES
667
950
40 OPERATIONS

LOC

NO_OF_EMP

SUM_SAL

MAX_SAL

AVG_

------------- ---------- ---------- ---------- ------NEW YORK

8750

DALLAS

10875

CHICAGO

9400

5000 2916.66
3000

2850 1566.66

BOSTON

________________________________________________________________________________
_____________
#19.Create a view which returns details of employees, departments
and respective locations for all the employees with employee_id < 100.
2
3
4
5

SQL> CREATE VIEW EMP_DEPT_DETAILS


AS
SELECT E.EMPNO,E.ENAME,E.DEPTNO,D.DNAME,D.LOC
FROM EMP E,DEPT D
WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO<100;

View created.
SQL> SELECT * FROM EMP_DEPT_DETAILS;
no rows selected

You might also like