0% found this document useful (0 votes)
24 views

Subquery assignment 115

oracle sql subquery questions

Uploaded by

Alka Kumari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Subquery assignment 115

oracle sql subquery questions

Uploaded by

Alka Kumari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Email :95sharath@gmail.

com
Insta id:sharath_hiremath_95

QUESTIONS on SUBQUERY

1.DISPLAY ALL THE EMPLOYEES WHOSE DEPARTMET NAMES ENDING 'S'

 SELECT * FROM EMP


WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE DNAME LIKE '%S');

2.QUERY TO DISPLAY THE EMPLOYEE NAMES WHO IS HAVING MAXIMUM SALARY IN


DEPT NAME "ACCOUNTING"

 SELECT ENAME FROM EMP


WHERE SAL=(SELECT MAX(SAL) FROM EMP) AND DEPTNO=(SELECT DEPTNO FROM DEPT
WHERE DNAME='ACCOUNTING’);

3.QUERY TO DISPLAY THE DEPT NAME WHO IS HAVING HIGHEST COMMISSION

 SELECT DNAME FROM DEPT


WHERE DEPTNO=(SELECT DEPTNO FROM EMP WHERE COMM=(SELECT MAX(COMM)
FROM EMP));

4. QUERY TO DISPLAY THE EMPLOYEE NAMES WHOSE DEPARTMENT NAME HAS


2ND CHARACTER AS 'O'.

 SELECT ENAME FROM EMP


WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE DNAME LIKE '%_O%');

5. QUERY TO DISPLAY ALL THE EMPLOYEES WHO’S DEPT NUMBER IS SAME AS SCOTT.

 SELECT * FROM EMP


WHERE DEPTNO=(SELECT DEPTNO FROM EMP WHERE ENAME='SCOTT');

6.QUERY TO DISPLAY ALL THE EMPLOYEES IN 'OPERATIONS AND ACCOUNTING' DEPT.

 SELECT * FROM EMP


WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE DNAME
IN('OPERATIONS','ACCOUNTING'));

7.LIST THE EMPLOYEES WHO HAS SALARY GREATER THAN MILLER

 SELECT * FROM EMP


WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME='MILLER');

8. LIST DEPARTMENT NAME HAVING ATLEAST 3 SALESMAN


 SELECT DNAME FROM DEPT WHERE DEPTNO=(SELECT DEPTNO FROM EMP WHERE
JOB='SALESMAN' GROUP BY DEPTNO HAVING COUNT(*)>=3);

9. DISPLAY THE DNAME OF AN EMPLOYEES WHO HAS NO REPORTING MANAGER.

SELECT DNAME FROM DEPT WHERE DEPTNO IN (SELECT DEPTNO FROM EMP WHERE MGR
IS NULL);

10. LIST ALL THE EMPLOYEES WHO ARE REPORTING TO JONES MANAGER

→SELECT * from emp where mgr = (SELECT mgr from emp WHERE ename='jones');

11. LIST EMPLOYEES FROM RESEARCH&ACCOUNTING HAVING ATLEAST 2 REPORTING.

→ SELECT ENAME FROM EMP WHERE DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE
DNAME IN('ESEARCH','ACCOUNTING') AND EMPNO IN(SELECT MGR FROM EMP GROUP BY
MGR HAVING COUNT(*)>=2));

12. DISPLAY THE DEPARTNAME OF THE EMPLOYEE WHOSE NAME DOES NOT STARTS
WITH S AND SALARY BETWEEN 1500 TO 3000.

→SELECT dname from dept where deptno in (SELECT deptno from emp where ename not LIKE 'S%'
and sal BETWEEN 1501 and 1999 );

13.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=(SELECT min(sal)
from emp where sal>2000));

14. DISPLAY THE LOCATION OF AN EMPLOYEE IN ACCOUNTING DEPARTMENT.

→SELECT loc from dept where dname= 'ACCOUNTING';

15. DISPLAY THE DEPARTMENT ‘S 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(*)>3);

16. WRITE A QUERY TO DISPLAY ALL THE EMPLOYEE WHOSE JOB NOT SAME AS
ALLEN AND SALARY IS GREATER THAN MARTIN.

→SELECT * from emp where job !=(SELECT job from emp WHERE ename ='ALLEN') and
sal>(SELECT sal from emp WHERE ename='MARTIN')

17. DISPLAY ALL THE EMPLOYEES WHO IS HAVING LOCATION IS SAME AS


ADAM'S MANAGER?

→SELECT ename from emp where deptno in(SELECT deptno from dept where loc
in(SELECT loc from dept where deptno in(select deptno from emp where empno in(select mgr
from emp where ename='ADAMS'))) );
18. DISPLAY THE JOB, MANAGER NUMBER OF EMPLOYEES WHO IS WORKING FOR JONES?

→SELECT job,mgr from emp where mgr=(SELECT empno from emp WHERE ename='JONES');

19. DISPLAY THE EMPLOYEE NAMES, HIGHER DATE, COMMISSION OF FORD'S MANAGER?

→SELECT ename,hiredate,comm from emp WHERE empno in(SELECT mgr from emp WHERE ename
='FORD');

20. 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'));

21. LIST EMPLOYEES WHO LOCATED IN CHICAGO AND THEIR COMMISSION IS ZERO.

→SELECT * from emp where deptno =(SELECT deptno from dept WHERE loc='CHICAGO') and
comm=0;
22. LIST EMPLOYEES WHO WORK FOR SALES DEPARTMENT AND THEIR SALARY
GREATER THAN AVERAGE SALARY OF THEIR DEPARTMENT.

→ SELECT * FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM DEPT WHERE
DNAME='SALES') AND SAL > ANY (SELECT AVG(SAL) FROM EMP GROUP BY DEPTNO);

23. LIST EMPLOYEES WHO ARE WORKING IN RESEARCH DEPARTMENT AND THEY
ARE MANAGER.

→ SELECT * from emp WHERE mgr is not null and deptno =(SELECT deptno from dept WHERE
dname='RESEARCH');

24. DISPLAY DEPARTMENT NAME OF THE EMPLOYEES WHO EARN COMMISSION.

→SELECT dname from dept where deptno in (select deptno from emp WHERE comm is not null);

25. 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=(SELECT max(sal)
from emp) and mgr is null);

26. DISPLAY EMPLOYEE DETAILS WHO ARE REPORTING TO BLAKE AND


HAVE COMMISSION WITHOUT USING NULL OR NOT NULL

→ SELECT ename from emp WHERE sal > all(SELECT sal from emp where deptno
!=10);SELECT * from emp WHERE mgr in(SELECT empno from emp where
ename='BLAKE') and comm>=0;

27. LIST ALL THE DEPTNAME AND LOC OF ALL THE SALESMAN MANAGER-MANAGER'S

→ SELECT dname 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='SALESMAN')));
28. 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 from dept where deptno in (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'));

29. 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 ename from emp where mgr 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');

30. LIST THE EMPLOYEES WHO JOINED AFTER 2 YEARS OF FIRST EMPLOYEE OF
THE COMPANY AND MORE THAN BLAKE SALARY

→ SELECT ename FROM emp WHERE hiredate<(SELECT min(hiredate)+365*2 from emp)


and sal>(SELECT sal from emp WHERE ename='BLAKE');

31. DISPLAY LOCATION OF ALL THE EMPLOYEES WHO REPORTING TO BLAKE

→ SELECT loc FROM dept WHERE deptno in (SELECT deptno from emp where mgr in (SELECT
empno from emp WHERE ename='BLAKE'));

32. LIST ALL THE EMPLOYEES WHOSE JOB IS SAME AS JONES AND THEIR SALARY
LESSER THAN SCOTT

→ SELECT * FROM emp WHERE job=(SELECT job from emp WHERE ename='JONES') and sal <
(SELECT sal FROM emp WHERE ename ='SCOTT');
33.DISPLAY ALL THE EMPLOYEES OF DEPARTMENT 30, 20 WITH THERE ANUAL
SALARY AND HAVING ATLEAST 3 EMPLOYEES

→SELECT count(*),emp.*,emp.sal*12 Annual from emp where deptno=10 or deptno=20 GROUP


by deptno HAVING count(*)>2;

34.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='SALESMAN');

35.DISPLAY ALL THE EMPLOYEES WHO ARE JOINED BEFORE THE LAST PERSON?

→ SELECT * FROM emp WHERE hiredate=(SELECT max(hiredate) from emp WHERE hiredate
<(SELECT max(hiredate) from emp));

35.FIND 3RD MINIMUM SALARY IN THE EMPLOYEE TABLE.

→ SELECT min(sal) FROM emp WHERE sal>(SELECT min(sal) from emp WHERE sal >(SELECT
min(sal) from emp));

36.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='MANAGER');

37.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)+4*365 from emp) and


sal<(SELECT sal from emp WHERE ename='BLAKE');

38. DISPLAY THE DEPARTMENT INFORMATION OF EMPLOYEE WHO IS WORKING FOR


NEW YORK LOCATION

→SELECT * from dept where loc='NEW YORK';


39. DISPLAY LOCATION OF EMPLOYEES, WHOSE NAME DOESN'T START WITH A AND
SALARY BETWEEN 1000 AND 3000.

→SELECT loc from dept where deptno in(SELECT deptno from emp WHERE ename not LIKE
'A%' and sal BETWEEN 1001 and 2999);

40. DISPLAY DEPARTMENT NAME OF ALL THE EMPLOYEES WHO ARE REPORTING
TO BLAKE.

→SELECT dname from dept where deptno in(SELECT deptno from emp WHERE mgr in(select
empno from emp where ename='BLAKE'));

41. DISPLAY MARTIN'S MANAGER'S MANAGER'S DEPARTMENT NAME AND LOCATION.

→SELECT dname,loc from dept where deptno in(SELECT deptno from emp WHERE empno =(select mgr
from emp where empno=(SELECT mgr from emp where ename='MARTIN')));

42.DISPLAY THE MANAGER NUMBER,JOB AND DEPARTMENT NUMBER FOR THOSE


WHO DON'T HAVE COMMISSION IN THE LOCATION CHICAGO OR DALLAS

→SELECT mgr, job, deptno from emp where deptno in(SELECT deptno from dept WHERE
loc='CHICAGO' or loc='DALLAS') and comm is null;

43.DISPLAY THE EMPLOYEE DETAILS WITH THEIR ANNUAL SALARY WHO EARN
MAXIMUM COMMISSION

→SELECT *,emp.sal*12 annual from emp where comm=(SELECT max(comm) from emp);
44.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 comm is NOT null and deptno=(SELECT deptno from dept where
dname='SALES') and hiredate=(SELECT max(hiredate) from emp WHERE hiredate <(SELECT
max(hiredate) from emp));

45.DISPLAY ALL THE DEPARTMENT NAMES FOR WARD'S MANAGER'S MANAGER

→SELECT dname from dept where deptno in (SELECT deptno from emp where empno=(SELECT mgr
from emp where empno=(select mgr from emp where ename='WARD')));
46: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 in(SELECT sal
from emp where sal> all(select avg(sal) from emp where job='CLERK')));

47.DISPLAY THE LAST EMPLOYEE RECORD WITH 25% HIKE IN SALARY.

→ SELECT max(hiredate),sal*1.25 from emp;

48.DISPLAY THE DEPARTMENT NUMBER WHO WORKING IN SALES DEPARTMENT


AND THEY ARE MANAGER.

→ SELECT deptno from dept WHERE dname='SALES' and deptno in(select deptno from emp
where job='MANAGER');

49.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=(SELECT
min(sal) from emp WHERE mgr is not null));

50.DISPLAY HIREDATE AND JOB OF ALL THE EMPLOYEES WORKING FOR SALES

→ SELECT hiredate, job from emp WHERE deptno=(SELECT deptno from dept WHERE
dname='SALES');

51.DISPLAY LOCATION AND DNAME OF EMPLOYEE WHO WORKING AS PRESIDENT

→ SELECT loc,dname from dept WHERE deptno=(SELECT deptno from emp WHERE
job='PRESIDENT');

52.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
in(SELECT max(sal) from emp where sal<3000) );

53.DISPLAY THE DEPARTMENT NAME WHO ARE REPORTING TO ADAMS.

→ SELECT dname from dept WHERE deptno in( SELECT deptno from emp where mgr in (SELECT
empno from emp WHERE ename='ADAMS'));

54.DISPLAY LAST EMPLOYEE RECORD ACCORDING TO EMPNO.

→ SELECT * from emp where empno=(select MAX(empno) from emp);

55.DISPLAY ALL THE EMPLOYEE WHOSE SALARY IS GREATER THAN AVERAGE SALARY
OF DEPARTMENT 30.

→ SELECT avg(sal), emp.* from emp where deptno=30 GROUP by deptno HAVING avg(sal) > sal;
56.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 =(SELECT deptno from dept where
dname='RESEARCH') and sal < any(SELECT sal from emp WHERE deptno =10);

57.DISPLAY THE DNAME THAT ARE HAVING CLERK IN IT.

→ SELECT dname from dept WHERE deptno in (SELECT deptno from emp where job='CLERK');

58.DISPLAY THE DEPARTMENT NAMES THAT ARE HAVING ATLEAST ONE L IN IT.

→ SELECT dname from dept WHERE dname like '%L%';

59. DISPLAY ALL THE EMPLOYEES WHO ARE JOINED AFTER BLAKE.

→ SELECT * from emp WHERE hiredate>(SELECT hiredate from emp where ename='BLAKE');
60. 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);

61. 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 mgr in (SELECT empno
from emp where sal>2000));

62.SELECT THE EMPLOYEES WHOSE DNAME IS HAVING AT LEAST TWO 'E' IN IT.

→ SELECT ename,dname from emp,dept where emp.DEPTNO=dept.DEPTNO and dname like '%E%E%';

63.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='ANALYST');

64.SELECT ALL THE EMPLOYEES WHO ARE WORKING FOR CHICAGO

→ SELECT * from emp where deptno in(SELECT deptno from dept where loc='CHICACO');

65. QUERY TO DISPLAY EMPLOYEE NAMES WHO IS HAVING MINIMUM SALARY


IN DEPARTMENT RESEARCH.

→ SELECT ename from emp where sal=(SELECT min(sal) from emp where
deptno=(SELECT deptno from dept where dname='RESEARCH'));

66.LIST THE DEPARTMENT NAMES THAT ARE HAVING SALESMAN.

→ SELECT dname from dept where deptno in(SELECT deptno from emp where job='SALESMAN');
67. 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(*)>2);
68.LIST EMPLOYEES FROM RESEARCH AND ACCOUNTING DEPARTMENT HAVING
ATLEAST TWO REPORTING

→ SELECT * from emp where deptno in(SELECT deptno from dept WHERE dname
in('RESEARCH','ACCOUNTING')) and empno in(SELECT mgr from emp GROUP BY mgr HAVING
count(*)>1);

69.WRITE A QUERY TO DISPLAY EMPLOYEE NAME, JOB,LOCATION OF ALL


EMPLOYEES WHO ARE WORKING AS MANAGER AND WORKS AT CHICAGO.

→ SELECT ename,job,loc from emp,dept WHERE emp.DEPTNO=dept.DEPTNO and


job='MANAGER' and loc='CHICACO';

70. SELECT ENAME OF EMPLOYEE WHO EARNS 2ND MAX SALARY AND WORKS
FOR LOCATION DALLAS.

→ SELECT ename from emp WHERE sal=(SELECT max(sal) from emp where sal<(SELECT
max(sal) from emp)) and deptno=(SELECT deptno from dept where loc='DALLAS');
71. WRITE A QUERY TO DISPLAY THE EMPLOYEE INFORMATION WHO IS NOT
TAKING COMMISSION AND JOINED COMPANY AFTER JULY 83.
→ SELECT * from emp WHERE comm is not null and hiredate > '31JUN83';

72.LIST EMPLOYEES FROM SALES AND RESEARCH DEPARTMENT HAVING


ATLEAST 2 REPORTING EMPLOYEES .
→ SELECT * from emp where deptno in(SELECT deptno from dept where dname
in('SALES','RESEARCH')) and empno in(SELECT mgr from emp GROUP by mgr having
count(*)>1);

73.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 > all(SELECT max(sal) from emp where job='SALESMAN') and
mgr!=(select empno from emp where ename='KING');

74.DISPLAY THE LOCATION OF ALL THE DEAPRTMENTS WHICH HAVE EMPLOYEES


JOINED IN THE YEAR 81
→ SELECT loc from dept where deptno in(SELECT deptno from emp WHERE hiredate like '__-___-
81');
75.DISPLAY DEPARTMENT WISE MINIMUM SALARY WHICH IS LESS THAN
AVERAGE SALARY OF EMPLOYEES.
→ SELECT min(sal),avg(sal),deptno from emp GROUP BY deptno HAVING min(sal) <
avg(sal);

76.DISPLAY ALL THE EMPLOYEES WHO ARE REPORTING TO 'JONES'.


→ SELECT * FROM emp where mgr in (select empno from emp where ename ='JONES');
77.DISPLAY ALL THE EMPLOYEE INFORMATION WHO ARE LIVING IN A LOCATION
WHICH IS HAVING AT LEAST 2 'O' IN IT.
→ SELECT * FROM emp where deptno in(SELECT deptno from dept where loc LIKE '%O%O%');

78.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 sal > all(SELECT sal from emp where deptno !=10);

79.DISPLAY THE NAMES OF EMPLOYEES WHO EARN HIGHEST SALARY IN


THEIR RESPECTIVE JOBS.
→ SELECT ename,job from emp WHERE sal in (SELECT max(sal) from emp GROUP BY
job);

80. DISPLAY THE EMPLOYEE NUMBER AND NAME OF EMPLOYEE WORKING AS CLERK
AND EARNING HIGHEST SALARY AMONG CLERKS.
→ SELECT empno,ename from emp WHERE job='CLERK' and sal =(SELECT max(sal) from emp
WHERE job='CLERK');

81. WRITE A QUERY TO FIND SMITH'S MANAGER'S MANAGER HIREDATE.


→ SELECT hiredate from emp WHERE hiredate in(SELECT hiredate from emp WHERE
empno=(SELECT mgr from emp WHERE empno=(SELECT mgr from emp WHERE ename='SMITH')));

82.LIST THE NUMBER OF EMPLOYEES WHOSE JOB IS SALESMAN WORKING FOR


NEWYORK AND CHICAGO
→ SELECT count(*),deptno from emp WHERE job='SALESMAN' and deptno in (SELECT deptno
from dept WHERE loc in('NEW YORK','CHICACO')) GROUP BY deptno;

83. LIST THE DEPARTMENT NAMES IN WHICH THE EMPLOYEES ARE HIRED BETWEEN
1ST OF JAN 1981 AND 31ST DEC 1982 WITH SALARY MORE THAN 1800.
→ SELECT dname from dept WHERE deptno in(SELECT deptno from emp WHERE hiredate
BETWEEN '1981-01-02' and '1982-12-30' and sal>1800);

84.DISPLAY LOCATION OF THE EMPLOYEE WHO EARN MAXIMUM SALARY AND HAVE
NO REPORTING MANAGER
→ SELECT loc from dept WHERE deptno =(SELECT deptno from emp WHERE sal=(SELECT
max(sal) from emp WHERE mgr is null));
85. LIST EMPLOYEES WHO WORKS FOR ACCOUNTING DEPARTMENT AND THEIR
SALARY GREATER THAN AVERAGE SALARY OF THEIR DEPARTMENT
→ SELECT * from emp WHERE deptno=(SELECT deptno from dept WHERE
dname='ACCOUNTING') and sal>(SELECT avg(sal) from emp);

86. DISPLAY LOCATION OF THE EMPLOYEE WHO EARN COMMISSION


→ SELECT loc from dept WHERE deptno in(SELECT deptno from emp WHERE comm is not null);
87.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 ename from emp where mgr 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');
88.DISPLAY ALL THE EMPLOYEES WHOSE SALARY IS GREATER THAN AVG SAL
OF DEPARTMENT 20
→ SELECT ename from emp where sal>(SELECT avg(sal) from emp WHERE deptno=20);

89. 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 in(SELECT deptno from emp WHERE
job='CLERK' and empno in(SELECT mgr from emp where empno=(SELECT mgr from emp where
ename='BLAKE')) and sal<(SELECT sal from emp where ename ='MARTIN'));

90. 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 <(SELECT sal from emp WHERE job='CLERK'));

91.DISPLAY EMPLOYEES LOCATION WHO HAS SOME COMMISSION.


→SELECT loc from dept where deptno in(SELECT deptno from emp WHERE comm is not null);

92.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;

93. 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(*)>1));

94. DISPLAY AVG SALARY OF ALL EMPLOYEES WHOSE DEPT NAME IS ACCOUNTING???
→SELECT avg(sal) from emp where deptno =(SELECT deptno from dept WHERE dname
='ACCOUNTING');

95. DISPLAY ALL EMPLOYEES DETAILS WHOSE HIREDATE IS IN YEAR 81???


→SELECT ename from emp WHERE hiredate like '%81';
96. DISPAY DETAILS OF SMITH AND EMPLOYEES WORKING AS PRESIDENT ALONG
WITH HIKE OF 35% IN SALARY.
→SELECT emp.*, sal+sal*35/100 hike from emp where ename='SMITH' and job='PRESIDENT';

97. DISPLAY NUMBER OF EMPLOYEES WHOSE COMMISSION IS MORE THAN SALARY.


→SELECT count(*) from emp where comm > sal;

98. LIST THE EMPLOYEES WHOSE DAILY SALARY IS GREATER THAN 1500 AND WHO
ARE JOINED BEFORE 1982 ONLY.
→SELECT ename FROM emp WHERE sal/30 >1500 AND hiredate <'01-JAN-82';

99. DISPLAY NUMBER OF EMPLOYEES WHOSE COMMISSION IS MORE THAN SALARY.

100. LIST THE EMPLOYEES WHOSE DAILY SALARY IS GREATER THAN 1500 AND WHO
ARE JOINED BEFORE 1982 ONLY.
→SELECT ename FROM emp WHERE sal/30 >1500 AND hiredate <'01-JAN-82';

101. DISPLAY ALL THE EMPLOYEES WHOSE JOB SAME AS 'SMITH' AND DEPARTMENT
SAME AS 'JONES' AND SALARY MORE THAN 'TURNER'
→SELECT ename from emp WHERE job=(select job from emp where ename='SMITH') and deptno
=(SELECT deptno from dept where deptno in(SELECT deptno from emp WHERE ename ='JOANS'))
and sal>(SELECT sal from emp WHERE ename='TURNER');

102. DISPLAY ALL THE EMPLOYEES WHOSE NAME START WITH 'S' AND HAVING
SALARY MORE THAN 'ALLEN' AND LESS THAN FORD
-→SELECT ename from emp WHERE ename like 'S%' and sal >(SELECT sal from emp where
ename='ALLEN') and sal<(SELECT sal from emp WHERE ename='FORD');

103. DISPLAY ALL THE CLERKS AND ANALYST WHO ARE NOT WORKING FOR 'DALLAS'
→SELECT * from emp WHERE job in('CLERK','ANYLYST') and deptno not in(SELECT deptno from
dept WHERE loc='DALLAS');

104. DISPLAY DEPARTMENT NAME WHICH IS HAVING AT LEAST ONE 'MANAGER'


→SELECT dname from dept WHERE deptno in(SELECT deptno from emp WHERE job='MANAGER'
GROUP by deptno HAVING count(*)>0);

105. DISPLAY MAXIMUM SALARY OF 'SALES' DEPARTMENT


→SELECT max(sal) from emp WHERE deptno in(SELECT deptno from dept WHERE dname='SALES');

106. DISPLAY THE 2ND MAXIMUM SALARY


→SELECT max(sal) from emp where sal<(SELECT max(sal) from emp);

107.DISPLAY THE DEPT NAME OF THE EMP WHO GETS 3 RD MAXIMUM SALARY
→SELECT dname from dept WHERE deptno in(SELECT deptno from emp WHERE sal=(SELECT
max(sal) from emp WHERE sal<(SELECT max(sal) from emp WHERE sal<(SELECT max(sal) from
emp))));
108. DISPLAY ALL THE EMPLOYEES WHO ARE EARNING MORE THAN ALL
THE MANAGERS(JOB).
→SELECT ename from emp WHERE sal>all(SELECT sal from emp where
job='MANAGER');
109. DISPLAY ALL THE EMPLOYEES WHO ARE EARNING MORE THAN ANY OF
THE MANAGER(JOB)
→SELECT ename from emp WHERE sal>any(SELECT sal from emp where
job='MANAGER');

110. 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');

111. 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'));

112. SELECT ALL THE EMPLOYEES WORKING FOR DALLAS


→ SELECT * from emp WHERE deptno in(SELECT deptno from dept WHERE loc='DALLAS');
113. DISPLAY ALL THE EMPLOYEES WHOSE SALARY IS GREATER THAN AVG SAL
OF DEPARTMENT 20
→ SELECT ename from emp WHERE sal>(SELECT avg(sal) from emp where deptno=20);
114.DISPLAY ALL THE EMPLOYEES WHO GETS MAXIMUM SALARY.
→ SELECT ename from emp WHERE sal=(SELECT max(sal) from emp);

115.DISPLAY FIRST EMPLOYEE RECORD BASED ON HIREDATE


→ SELECT * from emp WHERE hiredate in(SELECT min(hiredate) from emp);

You might also like