SELECT SUBSTR('20150601', 1, 6) AS CALC_MONTH,
CHN.EMPLOYEE_CODE,
CHN.CHANNEL_TYPE,
MIN(CHN.START_DATE) ACCURATE_START_DATE,
MAX(NVL(CHN.END_DATE, DATE '2051-01-01')) ACCURATE_END_DATE
FROM (SELECT EMP.EMPLOYEE_CODE,
HIS.CHANNEL_TYPE,
HIS.START_DATE,
HIS.END_DATE,
ROW_NUMBER() OVER(ORDER BY EMP.EMPLOYEE_CODE, HIS.START_DATE) - ROW_NUMBER() OVER(PARTITION BY EMP.EMPLOYEE_CODE, HIS.CHANNEL_TYPE ORDER BY EMP.EMPLOYEE_CODE, HIS.START_DATE) IND
FROM EPCIS_SAS_EMPLOYEE EMP, EPCIS_SAS_LEVEL_HISTORY HIS
WHERE EMP.HR_CODE IS NOT NULL
/* and EMP.ENTER_DATE < to_date('20150801', 'yyyymmdd')
and NVL(EMP.LEAVE_DATE, SYSDATE) >=
to_date('20150601', 'yyyymmdd')*/
AND EMP.EMPLOYEE_CODE = HIS.EMPLOYEE_CODE
/* and EMP.EMPLOYEE_CODE = '2100003444'*/
and EMP.EMPLOYEE_CODE = '2050000716') CHN
GROUP BY CHN.EMPLOYEE_CODE, CHANNEL_TYPE, IND
having trunc(MIN(CHN.START_DATE), 'mm') <= to_date('20150601', 'yyyymmdd') and MAX(NVL(CHN.END_DATE, DATE '2051-01-01')) >= to_date('20150701', 'yyyymmdd') - 1;