1.
WAQ TO DISPLAY EMPLOYEES DETAILS FROM EMP TABLE WHO ARE WORKING FOR
SAME MANAGER. BY USING JOIN AS WELL AS SUB QUERY
ANS:> SELECT * FROM EMP WHERE MGR IN(SELECT MGR FROM EMP WHERE MGR IS NOT
NULL GROUP BY MGR HAVING COUNT(MGR)>1);
>SELECT DISTINCT [Link],[Link] FROM EMP A,EMP B WHERE [Link]=[Link] AND
[Link]<>[Link] ORDER BY MGR;
2. LIST ENAME, JOB, ANNUAL SAL, DEPTNO, DNAME WHO EARN 30000 PER YEAR AND
WHO ARE NOT CLERKS
>Select ENAME,JOB,SAL*12 ANNUAL_SAL,[Link],DNAME FROM EMP,DEPT
WHERE [Link]=[Link] AND SAL*12>30000 AND
JOB<>'CLERK';
3. LIST OUT THE ALL EMPLOYEES BY NAME AND EMPLOYEE NUMBER ALONG WITH THEIR
MANAGER'S NAME AND EMPLOYEE NUMBER.
SELECT [Link] EMPLOYEE,[Link] EMPID ,[Link] MANAGER,[Link] MGRID
FROM EMP A,EMP B WHERE [Link]=[Link](+)
4. DISPLAY ENAME,DNAME EVEN IF THERE NO EMPLOYEES WORKING IN A PARTICULAR
DEPARTMENT.
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link](+)
=[Link]
5. DISPLAY EMPLOYEE NAME AND DEPARTMENT NAME FOR EACH EMPLOYEE
Select ename,dname from emp,dept where [Link]=[Link]
6. DISPLAY LOCATION NAME OF THE EMPLOYEE WHO EARN COMMISSION.
Select loc,ename from dept,emp where [Link]=[Link] and comm Is not null
7. DISPLAY DEPT NAME OF THE EMPLOYEE WHO EARN MIN SALARY AND HAVE NO
REPORTING MANAGER.
Select dname from dept,emp where [Link]=[Link] and sal=(select min(sal) from emp) and
mgr is null
8. DISPLAY ALL THE EMPLOYEES OF DEPT 30,10 WITH THEIR ANNUAL SALARY AND
HAVING AT LEAST 2 EMPLOYEES.
>Select ename, sal*12 Annual_sal from emp where deptno in(select deptno from emp where deptno
in(10,30) group by deptno having count(*)>=2)
9. LIST ALL THE EMPLOYEES WHOSE JOB IS SAME AS SCOTT AND THEIR SALARY
GREATER THAN JONES.
>select * from emp where job=(select job from emp where ename=SCOTT) and sal>(select sal from
emp where ename=JONES) and empno not in(select empno from emp where ename
in(SCOTT,JONES))
10. DISPLAY DEPT NAME,LOC OF ALL THE EMPLOYEES WHO ARE REPORTING TO SMITH.
SELECT DNAME,LOC FROM EMP,DEPT WHERE [Link]=[Link] AND
MGR=(SELECT EMPNO FROM EMP WHERE ENAME=SMITH)
11. LIST ALL THE DEPT NAME AND LOCATION OF ALL THE SALESMAN,MANAGER'S
MANAGER.
SELECT DNAME,LOC FROM DEPT,EMP WHERE [Link]=[Link] AND JOB
IN(SALESMAN,MANAGER) AND EMPNO IN(SELECT MGR FROM EMP WHERE
JOB=MANAGER)
12. LIST EMPLOYEES WHO ARE WORKING IN RESEARCH DEPT AND THEY ARE MANAGER.
SELECT ENAME FROM EMP,DEPT WHERE [Link]=[Link] AND
DNAME=RESEARCH AND JOB=MANAGER
13. 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=(SELECT MGR FROM EMP WHERE ENAME=BLAKE))
14. LIST THE EMPLOYEE DEPTNAME AND LOCATION OF ALL THE EMPLOYEES WHO ARE
ANALYST, REPORTING TO BLAKE.
SELECT ENAME,DNAME,LOC FROM EMP,DEPT WHERE [Link]=[Link] AND
JOB =ANALYST AND MGR=(SELECT EMPNO FROM EMP WHERE ENAME=BLAKE)
15. DISPLAY THE EMPLOYEE NAMES,HIREDATE,COMM OF FORD'S MANAGER.
SELECT ENAME,HIREDATE,COMM FROM EMP WHERE EMPNO=(SELECT MGR FROM EMP
WHERE ENAME=FORD)
16. DISPLAY ENAME, DNAME OF ALL THE EMPLOYEES WHOSE SALARY LESS THAN AVG
SAL OF DEPT 30
>SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND
SAL<(SELECT AVG(SAL) FROM EMP WHERE DEPTNO=30 GROUP BY DEPTNO)
17. DISPLAY ENAME DNAME AND LOC OF ALL THE EMPLOYEES WHO ARE WORKING FOR
JONES
SELECT ENAME,DNAME,LOC FROM EMP,DEPT WHERE [Link]=[Link] AND
MGR=(SELECT EMPNO FROM EMP WHERE ENAME=JONES)
18. DISPLAY ENAME DNAME OF ALL THE EMPLOYEES WHOSE NAME STARTS WITH S
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND ENAME
LIKE S%;
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND
SUBSTR(ENAME,1,1)=S;
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND
INSTR(ENAME,S,1,1)=1;
19. LIST THE DNAME WHO ARE NOT HAVING ANY EMPLOYEE IN IT
SELECT DNAME FROM DEPT WHERE DEPTNO NOT IN (SELECT DISTINCT DEPTNO FROM
EMP)
20. DISPLAY EMPLOYEE WHO ARE GETTING SAME COMMISSION
SELECT [Link] FROM EMP A ,EMP B
WHERE [Link]=[Link] AND [Link]<>[Link] AND
[Link] IS NOT NULL AND [Link] IS NOT NULL;
21. DISPLAY ALL COUNTRIES ALONG WITH THE REGIONS .
SELECT COUNTRY_NAME,REGION_NAME FROM COUNTRIES,REGIONS WHERE
COUNTRIES.REGION_ID=REGIONS.REGION_ID;
22. DISPLAY ALL CITIES AND THE COUNTRY IT BELONGS.
SELECT CITY,COUNTRY_NAME FROM COUNTRIES,REGIONS,LOCATIONS WHERE
COUNTRIES.REGION_ID=REGIONS.REGION_ID AND
COUNTRIES.COUNTRY_ID=LOCATIONS.COUNTRY_ID
23. DISPLAY ALL REGIONS AND THEIR RESPECTIVE COUNTRIES AND CITIES.
SELECT CITY,REGION_NAME,COUNTRY_NAME FROM COUNTRIES,REGIONS,LOCATIONS
WHERE COUNTRIES.REGION_ID=REGIONS.REGION_ID AND
COUNTRIES.COUNTRY_ID=LOCATIONS.COUNTRY_ID
24. DISPLAY ALL REGIONS, COUNTRIES AND CITIES WHICH ARE NOT BELONGS TO
EUROPE.
SELECT CITY,REGION_NAME,COUNTRY_NAME FROM COUNTRIES,REGIONS,LOCATIONS
WHERE COUNTRIES.REGION_ID=REGIONS.REGION_ID AND
COUNTRIES.COUNTRY_ID=LOCATIONS.COUNTRY_ID AND REGION_NAME<>EUROPE
25. DISPLAY THE REGION NAME OF INDIA.
SELECT REGION_NAME FROM REGIONS,COUNTRIES WHERE
Countries.REGION_ID=REGIONS.REGION_ID AND LOWER(COUNTRY_NAME)=LOWER(INDIA)
26. DISPLAY ALL THE COUNTRIES ALONG WITH THEIR CITIES AND ALSO THE COUNTRIES
DOESN'T HAVE CITIES.
SELECT COUNTRY_NAME, CITY FROM COUNTRIES,LOCATIONS WHERE
COUNTRIES.COUNTRY_ID=LOCATIONS.COUNTRY_ID(+)
27. DISPLAY ALL EMPLOYEES FIRST NAME AND LAST NAME AS 'EMPLOYEE NAME ' WITH
THEIR MANAGERS FIRST NAME AND LAST NAME AS 'MANAGER NAME ' AND ALSO THE
EMPLOYEES WHO DOESN'T HAVE MANAGER.
>SELECT A.FIRST_NAME||' '||A.LAST_NAME EMP,B.FIRST_NAME||' '||B.LAST_NAME MGR FROM
EMPLOYEES A,EMPLOYEES B WHERE A.MANAGER_ID=B.EMPLOYEE_ID(+)
28. DISPLAY ALL DEPARTMENTS AND THE CITY TO WHICH IT BELONGS.
<Select DEPARTMENT_NAME,CITY FROM DEPARTMENTS JOIN LOCATIONS
ON DEPARTMENTS.LOCATION_ID=LOCATIONS.LOCATION_ID
29. DISPLAY CITIES DOESN'T HAVE ANY DEPARTMENTS.
Select DEPARTMENT_NAME,CITY FROM DEPARTMENTS JOIN LOCATIONS
ON DEPARTMENTS.LOCATION_ID(+)=LOCATIONS.LOCATION_ID AND DEPARTMENT_NAME IS
NULL
30. DISPLAY ALL THE COUNTRIES OF AMERICA REGION
SELECT COUNTRY_NAME FROM COUNTRIES WHERE REGION_ID=(SELECT REGION_ID
FROM REGIONS WHERE LOWER(REGION_NAME)=LOWER('AMERICAS'));
> SELECT COUNTRY_NAME FROM COUNTRIES,REGIONS WHERE
LOWER(REGION_NAME)=LOWER('AMERICAS')
31. DISPLAY ALL THE DEPT NAMES IRRESPECTIVE OF ANY EMPLOYEE WORKING IN IT OR
NOT. IF AN EMPLOYEE IS WORKING DISPLAY HIS NAME.
Select DEPARTMENT_NAME FROM DEPARTMENTS.
32. WRITE A QUERY TO DISPLAY EMPLOYEE NAME, JOB, DNAME, LOCATION OF ALL
EMPLOYEES WHO ARE WORKING AS ACTUAL MANAGERS AND WORKS AT CHICAGO.
SELECT ENAME,JOB,DNAME,LOC FROM EMP,DEPT WHERE [Link]=[Link]
AND EMPNO IN(SELECT MGR FROM EMP) AND LOC=CHICAGO
33. 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,HIREDATE FROM EMP,DEPT WHERE [Link]=[Link] AND
HIREDATE BETWEEN 01-JAN-1981 AND 31-DEC-1982 AND SAL>1800;
34. DISPLAY 2ND LEAST SALARY FROM EMPLOYEE TABLE.
<SELECT MIN(SAL) FROM EMP WHERE SAL>(SELECT MIN(SAL) FROM EMP);
<SELECT DISTINCT [Link] FROM EMP A, EMP B WHERE [Link]<>[Link] AND
1=(SELECT COUNT(DISTINCT([Link])) FROM EMP B WHERE [Link]>[Link])
35. LIST THE EMPLOYEES WHOSE ANNUAL SALARY IS GREATER THAN 1500 AND WHO ARE
JOINED BEFORE 1982 ONLY.
SELECT ENAME,HIREDATE FROM EMP WHERE SAL*12>1500 AND HIREDATE<01-JAN-1981;
36. DISPLAY DNAME, LOC, DEPTNO OF EMPLOYEES WHO HAS SAME REPORTING
MANAGER.
SELECT DNAME,LOC,DEPTNO FROM DEPT WHERE DEPTNO IN(SELECT [Link] FROM
EMP A,EMP B WHERE [Link]=[Link] AND [Link]<>[Link])
< SELECT DISTINCT DNAME,LOC,[Link] FROM DEPT,EMP A,EMP B WHERE
[Link]=[Link] AND [Link]=[Link] AND [Link]<>[Link];
37. DISPLAY EMPLOYEE NAME ALONG WITH THEIR MANAGER NAME.
SELECT [Link] EMPLOYEE,[Link] MANAGER FROM EMP A,EMP B WHERE
[Link]=[Link];
38. DISPLAY EMPLOYEE NAME AND HIS DEPT NAME FOR THE EMPLOYEES WHOSE NAME
STARTS WITH S.
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND ENAME
LIKE S%;
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND
SUBSTR(ENAME,1,1)=S;
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND
INSTR(ENAME,S,1,1)=1;
39. DISPLAY EMPLOYEES WHO ARE GETTING SAME SALARY.
SELECT [Link] FROM EMP A,EMP B WHERE [Link]=[Link] AND [Link]<>[Link];
SELECT ENAME,SAL FROM EMP WHERE SAL IN(SELECT SAL FROM EMP GROUP BY SAL
HAVING COUNT(SAL)>1)
40. DISPLAY ALL THE EMPLOYEES WHOSE JOB SAME AS 'SMITH' AND DEPARTMENT SAME
AS 'JONES' AND SALARY MORE THAN 'SCOTT
SELECT ENAME FROM EMP WHERE JOB=(SELECT JOB FROM EMP WHERE ENAME=SMITH)
AND DEPTNO=(SELECT DEPTNO FROM EMP WHERE ENAME=JONES)
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND
JOB=(SELECT JOB FROM EMP WHERE ENAME='SMITH') AND [Link]=(SELECT
DEPTNO FROM EMP WHERE ENAME='JONES') AND ENAME<>'SMITH' AND SAL>(SELECT SAL
FROM EMP WHERE ENAME=SCOTT)
SELECT ENAME FROM EMP WHERE JOB=(SELECT JOB FROM EMP WHERE ENAME=SMITH
AND SAL>(SELECT SAL FROM EMP WHERE ENAME=SCOTT)) AND DEPTNO=(SELECT
DEPTNO FROM EMP WHERE ENAME=JONES)
ASSIGNMENTS ON EQUI-JOINS
41. DISPLAY ALL THE MANAGERS & CLERKS WHO WORK IN ACCOUNTS AND MARKETING
DEPARTMENTS.
SELECT ENAME,DNAME FROM EMP,DEPT WHERE [Link]=[Link] AND JOB
IN('MANAGER','CLERK') AND DNAME IN('MARKETING','ACCOUNTING')
42. DISPLAY ALL THE SALESMEN WHO ARE NOT LOCATED AT DALLAS.
SELECT ENAME FROM EMP,DEPT WHERE [Link]=[Link] AND
JOB=SALESMAN AND DNAME<>DALLAS
43. SELECT DEPARTMENT NAME & LOCATION OF ALL THE EMPLOYEES WORKING FOR
CLARK.
SELECT DNAME,LOC FROM EMP,DEPT WHERE [Link]=[Link] AND
MGR=(SELECT EMPNO FROM EMP WHERE ENAME=CLARK)
44. SELECT ALL THE DEPARTMENTAL INFORMATION FOR ALL THE MANAGERS.
SELECT DEPT.* FROM DEPT,EMP WHERE [Link]=[Link] AND
JOB=MANAGER ;
45. SELECT ALL THE EMPLOYEES WHO WORK IN DALLAS.
SELECT EMP.* ,LOC FROM EMP,DEPT WHERE [Link]=[Link] AND
LOC=DALLAS
ASSIGNMENTS ON OUTER-JOINS
46. DISPLAY ALL THE DEPARTMENTAL INFORMATION FOR ALL THE EXISTING EMPLOYEES
AND IF A DEPARTMENT HAS NO EMPLOYEES DISPLAY IT AS NO EMPLOYEES.
ANS: SELECT NVL2(ENAME,DNAME,'NO EMPLOYEE'),DNAME
FROM EMP,DEPT
WHERE [Link](+)=[Link]
47. GET ALL THE MATCHING & NON-MATCHING RECORDS FROM BOTH THE TABLES.
SELECT EMP.*,DEPT.* FROM EMP FULL OUTER JOIN DEPT ON [Link]=[Link];
SELECT EMP.*,DEPT.* FROM EMP,DEPT WHERE [Link](+)=[Link]
UNION
SELECT EMP.*,DEPT.* FROM EMP,DEPT WHERE [Link]=[Link](+) ;
48. GET ONLY THE NON-MATCHING RECORDS FROM DEPT TABLE (MATCHING RECORDS
SHOULDNT BE SELECTED).
SELECT EMP.*,DEPT.* FROM EMP full outer join DEPT on [Link]=[Link]
MINUS
(SELECT EMP.*,DEPT.* FROM EMP,DEPT WHERE [Link]=[Link](+)
INTERSECT SELECT EMP.*,DEPT.* FROM EMP,DEPT WHERE
[Link](+)=[Link])
ASSIGNMENTS ON SELF-JOINS
49. GET ALL THE EMPLOYEES WHO WORK IN THE SAME DEPARTMENTS AS OF SCOTT.
SELECT DISTINCT [Link] FROM EMP A, EMP B WHERE [Link]=(SELECT DEPTNO
FROM EMP WHERE ENAME='SCOTT') AND [Link]<>'SCOTT'
50. DISPLAY ALL THE EMPLOYEES WHO HAVE JOINED BEFORE THEIR MANAGERS.
SELECT [Link] EMP ,[Link] EMP_HIREDATE,[Link] MGR_HIREDATE FROM
EMP A,EMP B WHERE [Link]=[Link] AND [Link]<[Link];
51. LIST ALL THE EMPLOYEES WHO ARE EARNING MORE THAN THEIR MANAGERS.
SELECT [Link] EMPLOYEE,[Link] EMP_SAL, [Link] MANAGER,[Link] MGR_SAL FROM
EMP A,EMP B WHERE [Link]=[Link] AND [Link]>[Link]
52. FETCH ALL THE EMPLOYEES WHO ARE EARNING SAME SALARIES.
SELECT [Link],[Link] FROM EMP A,EMP B WHERE [Link]=[Link] AND
[Link]<>[Link]
53. DISPLAY EMPLOYEE NAME , HIS DATE OF JOINING, HIS MANAGER NAME & HIS
MANAGER'S DATE OF JOINING.
SELECT [Link] EMPLOYEE,[Link] EMP_HIREDATE,[Link] MGR,[Link]
MGR_HIREDATE FROM EMP A,EMP B WHERE [Link]=[Link];