SELECT 사원번호,
AVG_AMT_FUNC(사원번호),
AVG_AMT_FUNC(사원번호) * DECODE (직무,'A1',0.12,0.11),
기본급 / AVG_AMT_FUNC(사원번호)
FROM 사원
WHERE 부서코드 = '1110' ;
SELECT 사원번호,
AVG_AMT,
AVG_AMT * DECODE (직무,'A1',0.12,0.11),
기본급 / AVG_AMT
FROM ( SELECT 사번, AVG_AMT_FUNC(사번) AVG_AMT
FROM 사원
WHERE 부서코드 = '1110' ) ;
SELECT 사원번호,
AVG_AMT, AVG_AMT * DECODE (직무,'A1',0.12,0.11),
기본급 / AVG_AMT
FROM ( SELECT 사번, AVG_AMT_FUNC(사번) AVG_AMT
FROM 사원
WHERE 부서코드 = '1110'
GROUP BY 사원번호 ) ;
CREATE or REPLACE FUNCTION AVG_MAX_AMT_FUNC
(v_empno varchar2)
RETURN varchar2 IS
V_avg_amt varchar2(30);
BEGIN
SELECT RPAD(avg(급여총액),15) ||RPAD(max(급여총액),15) into v_avg_amt
FROM 급여
WHERE 사원번호 = v_empno
and 년월 between '199801' and '199803' ;
RETURN v_avg_amt;
END AVG_MAX_AMT_FUNC;
SELECT 사원번호,성명,substr(AMT,1,15), substr(AMT,16,15)
FROM (SELECT 사원번호,성명,
AVG_MAX_AMT_FUNC(사원번호) AMT
FROM 사원
WHERE 부서코드 = '1120') ;
SELECT 직무, 평균급여, 인원수, 최대기대급, 최대기대급/평균급여 * 100
FROM ( SELECT 직무, AVG_AMT_FUNC(사원번호) 평균급여,
count(*) 인원수,
max(기본급) 최대기본급
FROM 사원
WHERE 부서코드 = '1120'
GROUP BY 직무, AVG_AMT_FUNC(사원번호));
SELECT 직무,
AVG_MAX_AMT_FUNC(사원번호),
count(*),
max(기본급),
max(기본급) / AVG_AMT_FUNC(사원번호) * 100
FROM 사원
WHERE 부서코드 = '1120';
GROUP BY 직무, AVG_AMT_FUNC(사원번호);
- 강좌 URL : http://www.gurubee.net/lecture/2493
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.