SELECT A.ASSIGNMENT_NUMBER , P.FULL_NAME , P.BUSINESS_GROUP_ID , A.ASSIGNMENT_ID , A.PAYROLL_ID , NVL(P.CURRENT_EMPLOYEE_FLAG , 'N') CURRENT_EMP_FLAG , HR.MEANING , P.ORDER_NAME FROM FND_SESSIONS F , HR_LOOKUPS HR , PER_PEOPLE_F P , PER_ASSIGNMENTS_F A WHERE A.PERSON_ID = P.PERSON_ID AND F.SESSION_ID = USERENV('SESSIONID') AND F.EFFECTIVE_DATE BETWEEN P.EFFECTIVE_START_DATE AND P.EFFECTIVE_END_DATE AND (P.CURRENT_EMPLOYEE_FLAG = 'Y' AND F.EFFECTIVE_DATE BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE OR (P.CURRENT_EMPLOYEE_FLAG IS NULL AND A.EFFECTIVE_END_DATE = (SELECT MAX(ASG2.EFFECTIVE_END_DATE) FROM PER_PERIODS_OF_SERVICE S , PER_ASSIGNMENTS_F ASG2 WHERE ASG2.EFFECTIVE_END_DATE >= S.ACTUAL_TERMINATION_DATE AND ASG2.PERIOD_OF_SERVICE_ID = S.PERIOD_OF_SERVICE_ID AND ASG2.ASSIGNMENT_ID = A.ASSIGNMENT_ID ) ) ) AND P.EMPLOYEE_NUMBER IS NOT NULL AND A.ASSIGNMENT_TYPE = 'E' AND HR.LOOKUP_TYPE = 'YES_NO_ALL' AND HR.LOOKUP_CODE = NVL(P.CURRENT_EMPLOYEE_FLAG , 'N')