SELECT /*+ ORDERED */ P.FULL_NAME , NVL(P.EMPLOYEE_NUMBER , P.NPW_NUMBER) , P.PERSON_ID , A.LOCATION_ID , PBG.NAME FROM PO_AGENTS POA , PER_PEOPLE_F P , PER_ALL_ASSIGNMENTS_F A , PER_BUSINESS_GROUPS_PERF PBG WHERE P.PERSON_ID = POA.AGENT_ID AND P.PERSON_ID = A.PERSON_ID AND SYSDATE BETWEEN NVL(POA.START_DATE_ACTIVE , SYSDATE-1) AND NVL(POA.END_DATE_ACTIVE , SYSDATE+1) AND P.BUSINESS_GROUP_ID = PBG.BUSINESS_GROUP_ID AND A.PRIMARY_FLAG = 'Y' AND TRUNC(SYSDATE) BETWEEN P.EFFECTIVE_START_DATE AND P.EFFECTIVE_END_DATE AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE AND (NVL(CURRENT_EMPLOYEE_FLAG , 'N') = 'Y' OR NVL(CURRENT_NPW_FLAG , 'N') = 'Y')