Oracle/SQL

인라인 뷰(Inline View)연습

에몽이ㅋ 2012. 1. 12. 14:41
•사원테이블(TEMP)에서  사원의 연봉이 동일한 직급을 가진 사원의 평균연봉보다 많이 받는 사원의 사번,이름,연봉을 출력하세요.
 
select emp_id, emp_name, salary, temp.lev
from (
    select lev, avg(salary) avg_salary
    from temp
    group by lev
) v, temp
where temp.lev = v.lev
AND temp.salary > v.avg_salary;

    EMP_ID EMP_NAME       SALARY LEV
---------- ---------- ---------- ----
  19960101 홍길동       72000000 과장
  19930331 정도령       70000000 차장
  19950303 이순신       56000000 대리


* temp,tdept 테이블에서 emp_id,emp_name 컬럼을 출력하되 출력결과를 3-6번까지 줄의 데이터만 출력하세요.
  1  select v.no, v.emp_id, v.emp_name, v.dept_name
  2  from (
  3     select rownum no, temp.emp_id,
  4     temp.emp_name, tdept.dept_name
  5     from temp, tdept
  6     where tdept.dept_code = temp.dept_code
  7  ) v
  8* where v.no between 3 and 6
SQL> /

        NO     EMP_ID EMP_NAME   DEPT_NAME
---------- ---------- ---------- --------------------
         3   19970201 박문수     총무
         4   19930331 정도령     기술지원
         5   19950303 이순신     H/W지원
         6   19966102 지문덕     S/W지원