부서이동이력테이블에 부서종료일은 없고 부서시작일의 필드만 존재하는 상태에서 쿼리를 구현하고자 합니다.
## 사원테이블
`emp_no` varchar(20) NOT NULL,
`dept_no` varchar(11) NOT NULL,
`emp_nm` varchar(20) NOT NULL,
PRIMARY KEY (emp_no)
) DEFAULT CHARSET=utf8;
INSERT INTO tbl_emp (`emp_no`, `dept_no`, `emp_nm`) VALUES ('000001','001','유재석');
INSERT INTO tbl_emp (`emp_no`, `dept_no`, `emp_nm`) VALUES ('000002','001','박명수');
INSERT INTO tbl_emp (`emp_no`, `dept_no`, `emp_nm`) VALUES ('000003','002','정준하');
INSERT INTO tbl_emp (`emp_no`, `dept_no`, `emp_nm`) VALUES ('000004','003','정형돈');
INSERT INTO tbl_emp (`emp_no`, `dept_no`, `emp_nm`) VALUES ('000005','003','노홍철');
CREATE TABLE `tbl_dept` (
`dept_no` int(11) NOT NULL ,
`dept_nm` varchar(45) DEFAULT NULL
PRIMARY KEY (`dept_no`)
) DEFAULT CHARSET=utf8;
INSERT INTO tbl_dept (`dept_no`, `dept_nm') VALUES ('001','총무팀');
INSERT INTO tbl_dept (`dept_no`, `dept_nm') VALUES ('002','영업팀');
INSERT INTO tbl_dept (`dept_no`, `dept_nm') VALUES ('003','전략팀');
## 부서이동 이력테이블 dc_id : 시퀀스, dc_sdt : 부서근무시작일, dc_detp_no : 부서코드
CREATE TABLE `tbl_emp_history` (
`dc_id` int(11) NOT NULL AUTO_INCREMENT,
`emp_no` varchar(20) NOT NULL,
`dc_sdt` date NOT NULL ,
`dc_dept_no` int(11) NOT NULL,
`dc_dept_nm` varchar(45) NOT NULL,
PRIMARY KEY (`dc_id`)
) DEFAULT CHARSET=utf8;
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('1', '000001','2014-01-10','002','영업팀'); //유재석
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('2', '000002','2014-01-10','004','사업팀'); //박명수
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('3', '000003','2014-01-10','001','총무팀'); //정준하
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('4', '000004','2014-01-10','002','영업팀'); //정형돈
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('5', '000005','2014-01-10','001','총무팀'); //노홍철
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('6', '000006','2014-01-10','003','전략팀'); //하하
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('7', '000001','2014-03-20','001','총무팀'); //유재석
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('8', '000002','2014-04-20','001','총무팀'); //박명수
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('9', '000003','2014-05-20','002','영업팀'); //정준하
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('10','000004','2014-06-20','003','전략팀'); //정형돈
INSERT INTO tbl_emp_history (`dc_id`,`emp_no`,`dc_sdt`,`dc_dept_no`,`dc_dept_nm`) VALUES ('11','000005','2014-07-20','003','전략팀'); //노홍철
2014-04-01 ~ 2014-04-30(기준일) 총무팀에서 근무한 인원을 구하는 쿼리
결과값
NO |
부서명 |
이름 |
1 |
총무팀 |
유재석 |
2 |
총무팀 |
박명수 |
3 |
총무팀 |
정준하 |
간단하게 생각하고 테이블을 만들었는데 부서이동이력테이블에 종료일이 없어서 난항을 겪고 있습니다.
고수님들의 많은 가르침 배우고 싶습니다.
감사합니다.
테이블 수정이 필요하다면 어떻게 수정하는게 제일 좋은 방법일까요?
|