Assignment 6 Complete Subquery PDF
Assignment 6 Complete Subquery PDF
COMPLETE SUB-QUERY
1] DISPLAY DEPARTMENT NAME OF THE EMPLOYEE WHO EARN MAXIMUM SALARY AND HAVE NO REPORTING MANAGER.
SELECT DNAME
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE SAL IN (SELECT MAX(SAL)
FROM EMP
WHERE MGR IS NULL));
2] DISPLAY EMPLOYEE DETAILS WHO ARE REPORTING TO BLAKE AND HAVE COMMISSION WITHOUT USING NULL OR NOT NULL.
SELECT *
FROM EMP
WHERE COMM>=0 AND MGR IN (SELECT EMPNO
FROM EMP
WHERE ENAME=’BLAKE’);
3] LIST ALL THE DEPTNAME AND LOC OF ALL THE SALESMAN MANAGER-MANAGER'S.
SELECT DNAME, LOC
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE EMPNO IN (SELECT MGR
FROM EMP
WHERE EMPNO IN (SELECT MGR
FROM EMP
WHERE JOB IN (‘SALESMAN’))));
4 & 9] LIST THE EMPLOYEE DEPTNAME AND LOC OF ALL THE EMPLOYEES WHO ARE CLERK, REPORTING TO BLAKE AND SALARY IS LESSER THAN
MARTIN SALARY.
SELECT DNAME, LOC
FROM DEPT
WHERE DEPTNO =(SELECT DEPTNO
FROM EMP
WHERE JOB=’CLERK’ AND MGR IN ( SELECT EMPNO
FROM EMP
WHERE ENAME=’BLAKE’) AND SAL< (SELECT SAL
FROM EMP
WHERE ENAME=’MARTIN’));
6] DISPLAY DEPARTMENT NAME OF THE EMPLOYEE WHO EARN MINMUM SALARY AND HAVE REPORTING MANAGER.
SELECT DNAME
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE SAL IN (SELECT MIN(SAL)
FROM EMP
WHERE MGR IS NOT NULL));
7] WRITE A QUERY TO DISPLAY EMPLOYEE NAME, JOB OF ALL EMPLOYEES WHO ARE WORKING AS MANAGER AND WORKS AT CHICAGO.
SELECT ENAME,JOB
FROM EMP
WHERE JOB IN ('MANAGER') AND DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE LOC IN ('CHICAGO'));
8] LIST EMPLOYEES WHO HAVE COMMISSION GREATER THAN MAXIMUM SALARY OF ALL THE SALESMAN AND WHO DO NOT REPORT TO
KING DIRECTLY.
SELECT *
FROM EMP
WHERE COMM>(SELECT MAX(SAL)
FROM EMP
WHERE JOB='SALESMAN') AND ENAME=(SELECT ENAME
FROM EMP
WHERE MGR IN (SELECT EMPNO
FROM EMP
WHERE MGR IN (SELECT EMPNO
FROM EMP
WHERE ENAME='KING')))
10] DISPLAY THE NAMES OF EMPLOYEE FROM DEPARTMENT NUMBER 10 WITH SALARY GREATER THAN THAT OF ALL EMPLOYEE WORKING
IN OTHER DEPARTMENTS.
SELECT ENAME
FROM EMP
WHERE DEPTNO IN (10) AND SAL> ANY (SELECT SAL
FROM EMP
WHERE DEPTNO NOT IN (10));
11] DISPLAY ALL THE EMPLOYEE WHOSE DEPARTMENT IS SALES AND WHO IS EARNING SOME COMMISSION (I.E COMMISSION IS NOT NULL
OR ZERO) AND WHO IS HIRED BEFORE THE LAST PERSON HIRED.
SELECT *
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME IN (‘SALES’)) AND COMM>0 AND HIREDATE < (SELECT MAX(HIREDATE)
FROM EMP);
12] DISPLAY ENAME, SAL OF EMPLOYEES WHO ARE EARNING MORE THAN ANY OF THE ANALYST.
SELECT ENAME, SAL
FROM EMP
WHERE SAL>ANY (SELECT SAL
FROM EMP
WHERE JOB IN (‘ANALYST’));
13] DISPLAY ALL THE EMPLOYEES WHO ARE EARN LESS THAN ANY OF THE SALESMAN.
SELECT *
FROM EMP
WHERE SAL<ANY (SELECT SAL
FROM EMP
WHERE JOB IN (‘SALESMAN’));
14] LIST THE EMPLOYEES WHO JOINED AFTER 2 YEARS OF FIRST EMPLOYEE OF THE COMPANY AND MORE THAN BLAKE SALARY.
SELECT *
FROM EMP
WHERE HIREDATE> (SELECT MIN(HIREDATE)+(365*2)
FROM EMP) AND SAL> (SELECT SAL
FROM EMP
WHERE ENAME IN (‘BLAKE’));
17] DISPLAY DEPARTMENT WISE MINIMUM SALARY WHICH IS LESS THAN AVERAGE SALARY OF EMPLOYEES.
SELECT SAL, DEPTNO
FROM EMP
WHERE SAL IN (SELECT MIN(SAL)
FROM EMP
WHERE SAL< ANY (SELECT AVG(SAL)
FROM EMP
GROUP BY DEPTNO));
18] DISPLAY ALL THE EMPLOYEES WHOSE SALARY IS GREATER THAN AVG SAL OF DEPARTMENT 20.
SELECT *
FROM EMP
WHERE SAL >(SELECT AVG(SAL)
FROM EMP
WHERE DEPTNO IN (20));
19] DISPLAY THE DEPARTMENT LOCATION THAT IS HAVING GREATER THAN FOUR EMPLOYEES IN IT.
SELECT LOC
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)>4);
20] LIST THE DEPARTMENT NAMES THAT ARE HAVING AT LEAST 3 EMPLOYES IN IT.
SELECT DNAME
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)>=3) ;
22] DISPLAY THE LAST EMPLOYEE RECORD WITH 25% HIKE IN SALARY.
SELECT EMP.* ,SAL+SAL*0.25 HIKE_SALARY
FROM EMP
WHERE EMPNO IN (SELECT MAX(EMPNO)
FROM EMP);
27] DISPLAY LOCATION OF EMPLOYEE WHOSE SALARY IS MINIMUM SALARY BUT SALARY IS GREATER THAN 2000.
SELECT LOC
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE SAL > 2000 AND SAL IN (SELECT MIN(SAL)
FROM EMP));
28] DISPLAY ALL THE EMPLOYEES WHO ARE EARNING MORE THAN ANY OF THE MANAGER.
SELECT *
FROM EMP
WHERE SAL> ANY (SELECT SAL
FROM EMP
WHERE JOB IN (‘MANAGER’));
29] DISPLAY EMPNO, ENAME, JOB, WHOSE JOB HAS 'E' IN IT AND DISPLAY EMPNO IN DESCENDING ORDER.
SELECT EMPNO, ENAME, JOB
FROM EMP
WHERE JOB LIKE ‘%E%’
ORDER BY EMPNO DESC;
30] LIST EMPLOYEES WHO WORK FOR SALES DEPARTMENT AND THEIR SALARY GREATER THAN AVERAGE SALARY OF THEIR DEPARTMENT.
SELECT *
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME IN (‘SALES’)) AND SAL>( SELECT AVG(SAL)
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME IN (‘SALES’)));
31] DISPLAY THE DNAME OF EMPLOYEES WHOES SALARY IS MAXIMUM SALARY BUT LESSER THAN 3000.
SELECT DNAME
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE SAL <3000 AND SAL IN (SELECT MAX(SAL)
FROM EMP));
32] DISPLAY DEPARTMENT NAMES OF EMPLOYEE'S WHOSE SALARY IS GREATER THAN AVERAGE SALARY OF ALL THE CLERK'S.
SELECT DNAME
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE SAL >(SELECT AVG(SAL)
FROM EMP
WHERE JOB=’CLERK’
GROUP BY JOB));
33] LIST THE DEPT NAME THAT ARE HAVING AT LEAST 3 EMPLOYEES BUT NOT MORE THAN 5 EMPLOYEES IN IT.
SELECT DNAME
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING COUNT (*) BETWEEN 3 AND 5);
34] LIST EMPLOYEES WHO WORKS FOR ACCOUNTING DEPARTMENT AND THEIR SALARY GREATER THAN AVERAGE SALARY OF THEIR
DEPARTMENT.
SELECT *
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME=’ACCOUNTING’) AND SAL> (SELECT AVG(SAL)
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME=’ACCOUNTING’));
35] DISPLAY AVG SALARY OF ALL EMPLOYEES WHOSE DEPT NAME IS ACCOUNTING.
SELECT AVG(SAL)
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME=’ACCOUNTING’);
36] SELECT EMPNO, JOB AND SALARY OF ALL THE ANALYST WHO ARE EARNING MORE THAN ANY OF THE MANAGER(JOB).
SELECT EMPNO, JOB, SAL
FROM EMP
WHERE JOB=’ANALYST’ AND SAL> ANY (SELECT SAL
FROM EMP
WHERE JOB=’MANAGER’);
37] LIST THE EMPLOYEES WHO DOES NOT DIRECTLY REPORT TO PRESIDENT, HAVE COMMISSION AND SALARY MORE THAN MAX SALARY OF
ALL THE CLERK WITHOUT USING NULL OR NOT NULL.
SELECT *
FROM EMP
WHERE EMPNO IN (SELECT EMPNO
FROM EMP
WHERE MGR IN (SELECT EMPNO
FROM EMP
WHERE JOB=’PRESIDENT’))
AND COMM>=0 AND SAL> (SELECT MAX(SAL)
FROM EMP
WHERE JOB=’CLERK’)
38] DISPLAY ALL THE EMPLOYEES WHO ARE JOINED BEFORE THE LAST PERSON.
SELECT *
FROM EMP
WHERE HIREDATE < (SELECT MAX(HIREDATE)
FROM EMP);
39] LIST EMPLOYEES WHO JOINED AFTER 4 YEARS OF 1ST EMPLOYEE OF THE COMPANY AND LESS THAN BLAKE SALARY.
SELECT *
FROM EMP
WHERE HIREDATE> (SELECT MIN(HIREDATE) + (365*4+1)
FROM EMP) AND SAL<(SELECT SAL
FROM EMP
WHERE ENAME=’BLAKE’);
40] DISPLAY THE EMPLOYEE DETAILS WITH THEIR ANNUAL SALARY WHO EARN MAXIMUM COMMISSION.
SELECT EMP. *, SAL*12 “ANNUAL SALARY”
FROM EMP
WHERE COMM IN (SELECT MAX(COMM)
FROM EMP);
41] DISPLAY THE EMPLOYEE NUMBER AND NAME OF EMPLOYEE WORKING AS CLERK AND EARNING HIGHEST SALARY AMONG CLERKS.
SELECT EMPNO, ENAME
FROM EMP
WHERE JOB IN (‘CLERK’) AND SAL IN (SELECT MAX(SAL)
FROM EMP
WHERE JOB IN (‘CLERK’));
42] DISPLAY ALL THE EMPLOYEES WHO ARE EARNING MORE THAN ANY OF THE MANAGER.
SELECT *
FROM EMP
WHERE SAL> ANY (SELECT SAL
FROM EMP
WHERE JOB IN (‘MANAGER’));
43] DISPLAY THE NUMBER OF EMPLOYEES WHO WORK FOR RESEARCH DEPT AND THEIR SALARY IS LESSER THAN ONE OF THE SALARY IN
DEPARTMENT IN 10.
SELECT COUNT (*)
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME IN (‘RESEARCH’)) AND SAL<ANY (SELECT SAL
FROM EMP
WHERE DEPTNO IN (10));
44] DISPLAY LOC AND DNAME WHOSE JOB IS MANAGER AND HAS SAL LESS THAN CLERK.
SELECT DNAME, LOC
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE JOB='MANAGER' AND SAL< ALL (SELECT SAL
FROM EMP
WHERE JOB='CLERK'))
45] SELECT THE DEPARTMENT NAME AND LOCATION OF ALL THE EMPLOYEES WORKING FOR CLARK.
SELECT DNAME, LOC
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE MGR IN (SELECT EMPNO
FROM EMP
WHERE ENAME=’CLARK’));
46] DISPLAY ALL THE EMPLOYEES WHO IS HAVING LOCATION IS SAME AS ADAM'S MANAGER.
SELECT *
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE EMPNO IN (SELECT MGR
FROM EMP
WHERE ENAME=’ADAMS’)));
OR
SELECT *
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE EMPNO IN (SELECT MGR
FROM EMP
WHERE ENAME=’ADAMS’));
47] LIST EMPLOYEES FROM RESEARCH & ACCOUNTING HAVING ATLEAST 2 REPORTING.
SELECT MGR
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME IN (‘RESEARCH’, ‘ACCOUNTING’))
GROUP BY MGR
HAVING COUNT(*)>=2;
50] DISPLAY THE LOCATION OF ALL EMPLOYEES WHOSE REPORTING MANAGER SALARY IS GREATER THAN 2000.
SELECT LOC
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE EMPNO IN (SELECT MGR
FROM EMP
WHERE SAL> 2000));
51] LIST EMPLOYEES FROM RESEARCH AND ACCOUNTING DEPARTMENT HAVING ATLEAST TWO REPORTING.
SELECT MGR
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME IN (‘RESEARCH’, ‘ACCOUNTING’))
GROUP BY MGR
HAVING COUNT(*)>=2;
52] DISPLAY LOCATION OF THE EMPLOYEE WHO EARN MAXIMUM SALARY AND HAVE NO REPORTING MANAGER.
SELECT LOC
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE SAL IN (SELECT MAX(SAL)
FROM EMP) AND MGR IS NULL);
53] DISPLAY DNAME, LOC, DEPTNO OF EMPLOYEES WHO HAS SAME REPORTING MANAGER.
SELECT DNAME, LOC, DEPTNO
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE EMPNO IN (SELECT MGR
FROM EMP
GROUP BY MGR
HAVING COUNT (MGR) >1));
54] QUERY TO DISPLAY THE EMPLOYEE NAMES WHO IS HAVING MAXIMUM SALARY IN DEPT NAME "ACCOUNTING".
SELECT ENAME
FROM EMP
WHERE SAL IN (SELECT MAX(SAL)
FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE DNAME IN (‘ACCOUNTING’)));
NESTED QUERY
3] DISPLAY THE DEPT NAME OF THE EMP WHO GETS 3RD MAXIMUM SALARY.
SELECT DNAME
FROM DEPT
WHERE DEPTNO IN (SELECT DEPTNO
FROM EMP
WHERE SAL IN (SELECT MAX(SAL)
FROM EMP
WHERE SAL< (SELECT MAX(SAL)
FROM EMP
WHERE SAL< (SELECT MAX(SAL)
FROM EMP))));
EMPLOYEE-MANAGER RELATIONSHIP
1 & 7] DISPLAY ALL EMPLOYESS WHO DO NOT HAVE ANY REPORTER.
SELECT *
FROM EMP
WHERE MGR IS NULL;
10] DISPLAY THE NUMBER OF EMPLOYEES WHO ARE GETTING SALARY LESS THAN THE BLAKE'S MANAGER.
SELECT COUNT (*)
FROM EMP
WHERE SAL< (SELECT SAL
FROM EMP
WHERE EMPNO IN (SELECT MGR
FROM EMP
WHERE ENAME=’BLAKE’);