< 문제 (JOIN & SUB-QUERY) >
--(1) EMP와 DEPT TABLE을 JOIN하여 부서번호, 부서명, 이름, 급여를 출력하라.
select e.deptno 부서번호,d.dname 부서명,e.ename 이름,e.sal 급여 |
--(2) 이름이 'ALLEN'인 사원의 부서명을 출력하라.
select e.ename 사원이름,d.dname 부서명 |
--(3) DEPT Table에 있는 모든 부서를 출력하고, EMP Table에 있는 DATA와 JOIN하여
-- 모든 사원의 이름, 부서번호, 부서명, 급여를 출력하라.
select e.ename 이름,e.deptno 부서번호,d.dname 부서명 ,e.sal 급여 from emp e join dept d on e.deptno = d.deptno(+); |
--(4) EMP Table에 있는 EMPNO와 MGR을 이용하여 서로의 관계를 다음과 같이 출력하라.
--> SMITH의 매니져는 FORD이다.
select e.ename ||'의 매니져는 '||e1.ename||'이다.' 윗사람 |
--(5) 'ALLEN'의 직무(JOB)와 같은 사람의 이름, 부서명, 급여, 직무를 출력하라.
select e.ename 이름,d.dname 부서명,e.job 직무 |
--(6) 'JONES'가 속해있는 부서의 모든 사람의 부서번호, 사원번호, 이름, 입사일,
-- 급여를 출력하라.
select deptno,empno,ename,hiredate |
--(7) 전체 사원의 평균임금보다 많은 사원의 사원번호, 이름, 부서명, 입사일, 지역,
-- 급여를 출력하라.
select e.ename 이름,d.dname 부서명,e.hiredate 입사일,d.loc 지역,e.sal from emp e join dept d on e.deptno = d.deptno where sal > (select trunc(avg(sal)) from emp); |
--(8) 10번 부서 사람들 중에 20번 부서의 사원과 같은 업무를 하는 사원의 사원번호,
-- 업무, 이름, 부서명, 입사일, 지역을 출력하라.
select e.empno 사원번호,e.job 업무,e.ename 이름,d.dname 부서명,e.hiredate 입사일,d.loc 지역,d.deptno from emp e join dept d on e.deptno = d.deptno where e.deptno = 10 and e.job in ( select job from emp where deptno = 20) ; |
--(9) 10번 부서중에서 30번 부서에는 없는 업무를 하는 사원의 사원번호, 업무,
-- 이름, 부서명, 입사일, 지역을 출력하라.
select e.empno,e.job,e.ename,d.dname,e.hiredate,d.loc |
--(10) 10번 부서와 같은 일을 하는 사원의 사원번호, 업무, 이름, 부서번호, 부서명,
-- 지역, 급여를 급여가 많은 순으로 출력하라.
select e.empno,e.job,e.ename,e.deptno,d.dname,d.loc,e.sal,e.deptno |
--(11) 'MARTIN'이나 'SCOTT'의 급여와 같은 사원의 사원번호, 이름, 급여를 출력하라.
select empno,ename,sal |
--(12) 급여가 30번 부서의 최고 급여보다 높은 사원의 사원번호, 이름, 급여를 출력하라.
select empno,ename,sal |
--(13) 급여가 30번 부서의 최저 급여보다 낮은 사원의 사원번호, 이름, 급여를 출력하라.
select empno,ename,sal |
'Oracle DataBase > SQL' 카테고리의 다른 글
SQLGate2010 데이터 가져오기 (0) | 2012.07.12 |
---|---|
7day (0) | 2012.07.11 |
6day (0) | 2012.07.10 |
5day (0) | 2012.07.10 |
4day (0) | 2012.07.10 |