문제: 질의 결과처럼 데이터를 추출 할 수 있도록 sql 작성
1)생년월일이 20120101 에서 20151231 사이인 쌍둥이 자녀를 가진 임직원을 구하세요.
[주어진 질의결과]

[SQL 코드]
SELECT f1.emp_no AS 직원번호
,f1.fam_nm AS 쌍둥이1
,f2.fam_nm AS 쌍둥이2
FROM
(SELECT *
FROM fam_c
WHERE birth_ymd BETWEEN '20120101' AND '20151231'
AND rel_type_cd = 'A27') f1
,fam_c f2
WHERE f1.emp_no = f2.emp_no
AND f1.birth_ymd = f2.birth_ymd
AND f1.fam_nm <> f2.fam_nm;
[제가 한 질의결과]
2) . 20210321 기준으로 재직중인 임직원이며. 생년월일이 20120101 에서 20151231인 자녀를 가진 임직원을 구하는 sql을 작성하세요.
[주어진 질의결과]
[SQL 코드]
SELECT e.emp_no AS 직원번호
,f.fam_nm AS 자녀성명
,f.birth_ymd AS 자녀생년월일
FROM emp_c e
INNER JOIN fam_c f on e.emp_no = f.emp_no
WHERE e.retire_ymd >= '20210321'
AND f.birth_ymd BETWEEN '20120101' AND '20151231'
AND f.rel_type_cd = 'A27';
[제가 한 질의결과]
3) . 20210321 기준으로 재직중인 임직원이며. 사내부부인 임직원의 직원번호를 구하는 sql을 작성하세요.
[주어진 질의결과]
[SQL 코드]
SELECT e.emp_no AS EMP_NO
FROM emp_c e
INNER JOIN fam_rel_c fam_r ON e.emp_no = fam_r.emp_no
WHERE e.retire_ymd >= '20210321'
AND fam_r.end_ymd >= '20210321'
AND fam_r.rel_type_cd IN ('A02', 'A18')
[제가 한 질의결과]
3-2) . 현재 날짜 기준 재직중인 “이씨 성"을 가진 직원의 자녀명수가 몇 명인지 리스트를 만드세요.
[SQL 코드]
SUBSTR 사용
SELECT emp.emp_no AS 직원번호
, emp.emp_nm AS 직원명
, COUNT(*) AS 자녀명수
FROM emp_c emp
INNER JOIN fam_c fam ON emp.emp_no = fam.emp_no
WHERE SUBSTR(emp.emp_nm, 1, 1) = '이'
AND SYSDATE BETWEEN HIRE_YMD AND RETIRE_YMD
AND rel_type_cd = 'A27'
GROUP BY emp.emp_no, emp.emp_nm ;
LIKE 사용
SELECT emp.emp_no AS 직원번호
, emp.emp_nm AS 직원명
, COUNT(*) AS 자녀명수
FROM emp_c emp
INNER JOIN fam_c fam ON emp.emp_no = fam.emp_no
WHERE emp.emp_nm LIKE '이%'
AND SYSDATE BETWEEN HIRE_YMD AND RETIRE_YMD
AND rel_type_cd = 'A27'
GROUP BY emp.emp_no, emp.emp_nm ;
[제가 한 질의결과]
3-3) . 자녀 명수가 2명 이상인 직원의 리스트를 구하세요. (직원번호 / 성명 / 자녀명수 )
[SQL 코드]
SELECT e.emp_no AS 직원번호
,e.emp_nm AS 직원성명
,COUNT(*) AS 자녀명수
FROM emp_c e
INNER JOIN fam_c f ON e.emp_no = f.emp_no
WHERE f.rel_type_cd = 'A27'
GROUP BY e.emp_no, e.emp_nm
HAVING COUNT(*) >= 2;
[제가 한 질의결과]
3-4) . 현재 기준 조직의 부서별 직원이 몇 명인지 구하는 sql을 작성하세요. (조직코드, 조직명, 직원수)
[SQL 코드]
SELECT org.org_cd AS 조직코드
, org.org_nm AS 조직명
, COUNT(emp.emp_no) AS 직원수
FROM org_c org
INNER JOIN emp_c emp ON emp.org_cd = org.org_cd
WHERE SYSDATE BETWEEN STA_YMD AND END_YMD
GROUP BY org.org_cd, org.org_nm;
[제가 한 질의결과]
'교육 및 공부' 카테고리의 다른 글
[코멘토 SQL 직무부트캠프] 4차과제- 데이터추출 최종과제 (0) | 2022.06.18 |
---|---|
[데이터리안] SQL 데이터분석 캠프 - 입문반 솔직후기 (+5만원환급이벤트) (0) | 2022.06.15 |
[코멘토 SQL직무부트캠프] 2차 과제-데이터추출요청서&SQL연습 (0) | 2022.06.03 |
[코멘토 SQL직무부트 캠프] 1차과제-데이터 탐색(오라클) (0) | 2022.06.03 |