JOIN (23.05.18)

·2023년 5월 19일
0

Coding Test

목록 보기
20/39
post-thumbnail

✏️ 문제 1

주민번호가 70년대 생이면서 성별이 여자이고, 성이 '전'씨인 직원들의
사원명, 주민번호, 부서명, 직급명을 조회하시오.

  • 풀이
SELECT EMP_NAME, EMP_NO, DEPT_TITLE, JOB_NAME
FROM EMPLOYEE
JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID)
JOIN JOB USING(JOB_CODE)
WHERE TO_NUMBER(SUBSTR(EMP_NO, 1, 2)) BETWEEN 70 AND 79
AND SUBSTR(EMP_NO, 8, 1) = 2
AND EMP_NAME LIKE '전%';

✏️ 문제 2

이름에 '형'자가 들어가는 직원들의 사번, 사원명, 부서명을 조회하시오.

  • 풀이
SELECT EMP_NO, EMP_NAME, DEPT_TITLE
FROM EMPLOYEE
JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID)
WHERE EMP_NAME LIKE '%형%';

✏️ 문제 3

해외영업 1부, 2부에 근무하는 사원의
사원명, 직급명, 부서코드, 부서명을 조회하시오.

  • 풀이
SELECT EMP_NAME, JOB_NAME, DEPT_CODE, DEPT_TITLE
FROM EMPLOYEE
JOIN JOB USING(JOB_CODE)
JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID)
WHERE DEPT_ID IN ('D5', 'D6');

✏️ 문제 4

보너스포인트를 받는 직원들의 사원명, 보너스포인트, 부서명, 근무지역명을 조회하시오.

  • 풀이
SELECT EMP_NAME, BONUS, DEPT_TITLE, LOCAL_NAME
FROM EMPLOYEE
LEFT JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID)
LEFT JOIN LOCATION ON(LOCATION_ID = LOCAL_CODE)
WHERE BONUS IS NOT NULL;

✏️ 문제 5

부서가 있는 사원의 사원명, 직급명, 부서명, 지역명 조회

  • 풀이
SELECT EMP_NAME, JOB_NAME, DEPT_TITLE, LOCAL_NAME
FROM EMPLOYEE
JOIN JOB USING(JOB_CODE)
RIGHT JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID)
LEFT JOIN LOCATION ON(LOCATION_ID = LOCAL_CODE)
WHERE DEPT_CODE IS NOT NULL;

✏️ 문제 6

급여등급별 최소급여(MIN_SAL)를 초과해서 받는 직원들의
사원명, 직급명, 급여, 연봉(보너스포함)을 조회하시오.
연봉에 보너스포인트를 적용하시오.

  • 풀이
SELECT EMP_NAME, JOB_NAME, SALARY, (SALARY *(1 + NVL(BONUS, 0)))*12 연봉
FROM EMPLOYEE
LEFT JOIN JOB USING(JOB_CODE)
LEFT JOIN SAL_GRADE USING(SAL_LEVEL)
WHERE SALARY > MIN_SAL;

✏️ 문제 7

한국(KO)과 일본(JP)에 근무하는 직원들의
사원명, 부서명, 지역명, 국가명을 조회하시오.

  • 풀이
SELECT EMP_NAME, DEPT_TITLE, LOCAL_NAME, NATIONAL_NAME
FROM EMPLOYEE
LEFT JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID)
LEFT JOIN LOCATION ON(LOCATION_ID = LOCAL_CODE)
LEFT JOIN NATIONAL USING(NATIONAL_CODE)
WHERE NATIONAL_CODE IN('KO', 'JP');

✏️ 문제 8

같은 부서에 근무하는 직원들의 사원명, 부서코드, 동료이름을 조회하시오.
SELF JOIN 사용

  • 풀이
SELECT E.EMP_NAME 사원명, E.DEPT_CODE 부서코드, M.EMP_NAME 동료이름
FROM EMPLOYEE E
JOIN EMPLOYEE M ON(E.DEPT_CODE = M.DEPT_CODE)
WHERE E.EMP_NAME != M.EMP_NAME
ORDER BY 사원명;

✏️ 문제 9

보너스포인트가 없는 직원들 중에서 직급코드가 J4와 J7인 직원들의 사원명, 직급명, 급여를 조회하시오.
단, JOIN, IN 사용할 것

  • 풀이
SELECT EMP_NAME, JOB_NAME, SALARY
FROM EMPLOYEE
JOIN JOB USING(JOB_CODE)
WHERE BONUS IS NULL
AND JOB_CODE IN('J4', 'J7');
profile
풀스택 개발자 기록집 📁

0개의 댓글