You are on page 1of 3

1.

Select all the employees whose hire date is in the year 1981

Query 1:

select EMPNO, ENAME, JOB, HIREDATE from emp

where EXTRACT(YEAR from HIREDATE) = 1981

Query 2:

select EMPNO, ENAME, JOB, HIREDATE from emp

where to_char(HIREDATE, 'YYYY') = 1981

2. Select all the employees who are also Managers

select EMPNO, ENAME, JOB, MGR

from emp

where empno in (select distinct mgr from emp)

3. Select all the managers whose reportees have got a commission

select ename, empno

from emp

where empno in (select distinct mgr from emp where comm >= 0)

4. Return empno, empname and their corresponding department name

select e.empno, e.ename, d.dname

from emp e

join dept d

ON e.deptno = d.deptno

5. Return the highest salary and lowest salary as per designation

eg. Manager  Highest Salary = x, Lowest Salary = y etc.

select job, min(sal), max(sal)

from emp

group by job
6. Return the employees who has earned the lowest salary for each designation

select empno, ename,b.job, minsal from

emp a join

(select job, min(sal) as minsal

from emp

group by job) b

on a.sal = b.minsal

JOINS

7. Select Dept Name and the number of managers within them

select f.dname, count(f.job)

from (select d.dname, job

from emp e

join dept d

on e.deptno = d.deptno

where job = 'MANAGER') as f

group by job

8. Within each dept, select the employee grade – highest or lowest salary

select h.deptno, min(rank), max(rank)

from (select g.deptno, g.grade, (case grade

When 'A' then 1

When 'B' then 2

When 'C' then 3

When 'D' then 4

When 'E' then 5

Else 0

END) as "RANK"

from (select e.deptno, j.grade_level as Grade

from emp e

join job_grade j
on e.sal between lowest_sal and highest_sal) g) h

group by deptno

9. What is the highest or lowest commission within each dept name

select C.Dname, min(C.comm), max(C.Comm)

from (select e.comm, e.deptno, d.dname

from emp e

join dept d

on e.deptno = d.deptno) as C

group by C.dname;

You might also like