SELECT DISTINCT P.FULL_NAME FULL_NAME , P.PERSON_ID PERSON_ID , P.EMPLOYEE_NUMBER EMPLOYEE_NUMBER FROM PER_PEOPLE_F P , PER_ALL_ASSIGNMENTS_F A , PER_PERIODS_OF_SERVICE B , PA_LOOKUPS PL WHERE P.CURRENT_EMPLOYEE_FLAG = 'Y' AND P.EFFECTIVE_END_DATE >= TRUNC(SYSDATE) AND P.EMPLOYEE_NUMBER IS NOT NULL AND P.PERSON_ID = A.PERSON_ID AND A.PRIMARY_FLAG = 'Y' AND A.ASSIGNMENT_TYPE ='E' AND A.PERIOD_OF_SERVICE_ID = B.PERIOD_OF_SERVICE_ID AND A.PERSON_ID = B.PERSON_ID AND A.EFFECTIVE_END_DATE >= TRUNC(SYSDATE) AND (B.ACTUAL_TERMINATION_DATE >= TRUNC(SYSDATE) OR B.ACTUAL_TERMINATION_DATE IS NULL) AND PL.LOOKUP_TYPE='PA_PERSON_TYPE' AND PL.LOOKUP_CODE='EMP' UNION ALL SELECT DISTINCT P.FULL_NAME FULL_NAME , P.PERSON_ID PERSON_ID , P.EMPLOYEE_NUMBER EMPLOYEE_NUMBER FROM PER_PEOPLE_F P , PER_ALL_ASSIGNMENTS_F A , PER_PERIODS_OF_PLACEMENT B , PA_LOOKUPS PL WHERE P.CURRENT_NPW_FLAG='Y' AND P.EFFECTIVE_END_DATE >= TRUNC(SYSDATE) AND P.NPW_NUMBER IS NOT NULL AND P.PERSON_ID = A.PERSON_ID AND A.PRIMARY_FLAG = 'Y' AND A.ASSIGNMENT_TYPE = 'C' AND B.DATE_START = A.PERIOD_OF_PLACEMENT_DATE_START AND A.PERSON_ID = B.PERSON_ID AND A.EFFECTIVE_END_DATE >= TRUNC(SYSDATE) AND (B.ACTUAL_TERMINATION_DATE >= TRUNC(SYSDATE) OR B.ACTUAL_TERMINATION_DATE IS NULL) AND PL.LOOKUP_TYPE='PA_PERSON_TYPE'