SELECT a.부서명, b.사원번호, b.성명, c.년월, c.급여총액
FROM 부서 a, 사원 b, 급여 c
WHERE b.부서코드 = a.부서코드
and c.사원번호 = b.사원번호
and a.위치 = '서울'
and b.직책 = '과장'
and c.년월 between '199001' and '199712'
ORDER BY a.부서명, b.입사일, c.년월 ;
SELECT /*+ ORDERED USE_NL(x y) */
x.부서명, x.입사일, x.사원번호, x.성명, y.년월, y.급여총액
FROM (SELECT a.부서명, b.입사일, b.사원번호, b.성명)
FROM 부서 a, 사원 b
WHERE b.부서코드 = a.부서코드
and a.위치 = '서울'
and b.직책 = '과장'
ORDER BY a.부서명, b.입사일, b.사원번호) x, 급여 y
WHERE y.사원번호 = x.사원번호
and y.년월 BETWEEN '199001' AND '199712' ;
SELECT /*+ ORDERED USE_NL(x y) */
x.부서명, x.입사일, x.사원번호, x.성명, y.년월, y.급여총액
FROM (SELECT a.부서명, b.입사일, b.사원번호, MAX(b.성명)
FROM 부서 a, 사원 b
WHERE b.부서코드 = a.부서코드
and a.위치 = '서울'
and b.직책 = '과장'
GROUP BY a.부서명, b.입사일, b.사원번호) x, 급여 y
WHERE y.사원번호 = x.사원번호
and y.년월 BETWEEN '199001' AND '199712' ;
SELECT a.사원번호, AVG_AMT * DECODE(a.직무, 'A1', 0.12, 0.11)
FROM 사원 a,
(SELECT 사원번호, AVG(급여총액) AVG_AMT
FROM 급여
WHERE 년월 between '199801' and '199803'
GROUP BY 사원번호) b
WHERE b.사원번호 = a.사원번호
and a.부서코드 = '1110';
CREATE or REPLACE FUNCTION AVG_AMT_FUNC
(v_empno varchar2)
RETURN number IS
V_avg_amt number;
BEGIN
SELECT avg(급여총액) into v_avg_amt
FROM 급여
WHERE 사원번호 = V_EMPNO
and 년월 between '199801' and '199803';
RETURN v_avg_amt;
END AVG_AMT_FUNC;
SELECT 사원번호, AVG_AMT_FUNC(사원번호) * DECODE(직무, 'A1', 0.12, 0.11)
FROM 사원
WHERE 부서코드 = '1110';
SELECT 사원번호,
CURSOR( SELECT AVG(급여총액) * DECODE(a.직무. 'A1', 0.12, 0.11), MIN(급여총액), MAX(급여총액)
FROM 급여 b
WHERE b.사원번호 = a.사원번호
and b.년월 BETWEEN ;199801' AND '199803')
FROM 사원 a
WHERE 부서코드 = '1110';
- 강좌 URL : http://www.gurubee.net/lecture/2492
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.