nwe

时间:2023-03-09 09:01:16
nwe

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;

nwe