SELECT P.PERSON_ID , P.FULL_NAME , DECODE(P.CURRENT_EMPLOYEE_FLAG , 'Y' , P.EMPLOYEE_NUMBER , P.NPW_NUMBER) , PAF.ORGANIZATION_ID , OU.NAME , P.EFFECTIVE_START_DATE , DECODE(P.CURRENT_NPW_FLAG , 'Y' , 'CWK' , 'EMP') FROM PER_PEOPLE_F P , PER_ALL_ASSIGNMENTS_F PAF , HR_ALL_ORGANIZATION_UNITS_TL OU WHERE ((P.CURRENT_EMPLOYEE_FLAG = 'Y' AND P.EMPLOYEE_NUMBER IS NOT NULL) OR (P.CURRENT_NPW_FLAG = 'Y' AND P.NPW_NUMBER IS NOT NULL)) AND PAF.PERSON_ID = P.PERSON_ID AND PAF.PRIMARY_FLAG = 'Y' AND PAF.ASSIGNMENT_TYPE IN ('E' , 'C') AND PAF.JOB_ID IS NOT NULL AND ( ( TRUNC(SYSDATE) BETWEEN TRUNC(P.EFFECTIVE_START_DATE) AND TRUNC(P.EFFECTIVE_END_DATE) AND TRUNC(SYSDATE) BETWEEN TRUNC(PAF.EFFECTIVE_START_DATE) AND TRUNC(PAF.EFFECTIVE_END_DATE)) OR ( TRUNC(SYSDATE) < TRUNC(P.EFFECTIVE_START_DATE) AND TRUNC(P.EFFECTIVE_START_DATE) BETWEEN TRUNC(PAF.EFFECTIVE_START_DATE) AND TRUNC(PAF.EFFECTIVE_END_DATE))) AND OU.ORGANIZATION_ID = PAF.ORGANIZATION_ID AND OU.LANGUAGE = USERENV('LANG') ORDER BY P.FULL_NAME