문제:
사원별 성과금 정보 조회
- 사번, 성명, 평가 등급, 성과금 조회
- 사번 기준 오름차순
해결방법:
1. 점수에 따른 평가 등급, 평가 등급에 따른 성과금 계산 시 CASE 문 사용
2. 사원별 평가 등급 조회를 위해 GROUP BY 로 SCORE 에 대한 AVG 계산
3. 사원 정보 테이블을 INNER JOIN
예시 코드:
SELECT EMP.EMP_NO, EMP_NAME, G.GRADE,
(CASE WHEN G.GRADE = 'S' THEN SAL * 0.2
WHEN G.GRADE = 'A' THEN SAL * 0.15
WHEN G.GRADE = 'B' THEN SAL * 0.1
ELSE SAL * 0
END) AS BONUS
FROM HR_EMPLOYEES EMP
INNER JOIN (
SELECT EMP_NO,
(CASE WHEN AVG(SCORE) >= 96 THEN 'S'
WHEN AVG(SCORE) >= 90 THEN 'A'
WHEN AVG(SCORE) >= 80 THEN 'B'
ELSE 'C'
END) AS GRADE
FROM HR_GRADE
GROUP BY EMP_NO
) AS G
ON EMP.EMP_NO = G.EMP_NO
;
'[SQL] 연습' 카테고리의 다른 글
[MySQL] 프로그래머스 오프라인/온라인 판매 데이터 통합하기 (0) | 2025.04.05 |
---|---|
[MySQL] 프로그래머스 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2025.04.04 |
[MySQL] 프로그래머스 물고기 종류 별 대어 찾기 (0) | 2025.03.30 |
[MySQL] 프로그래머스 업그레이드 할 수 없는 아이템 구하기 (0) | 2025.03.28 |
[MySQL] 프로그래머스 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2025.03.23 |