SELECT A.PERSON_ID , A.ASSIGNMENT_ID , A.BUSINESS_GROUP_ID , B.GL_SET_OF_BOOKS_ID , MIN(A.EFFECTIVE_START_DATE) BEGIN_DATE , DECODE(MAX(A.EFFECTIVE_END_DATE ) , TO_DATE('31-DEC-4712' , 'DD-MM-YYYY') , TO_DATE(NULL) , MAX(A.EFFECTIVE_END_DATE )) END_DATE FROM PER_ASSIGNMENTS_F A , PER_PEOPLE_F PER , PAY_PAYROLLS_F B WHERE PER.PERSON_ID = A.PERSON_ID AND A.PAYROLL_ID=B.PAYROLL_ID AND A.ASSIGNMENT_TYPE ='E' AND (( B.EFFECTIVE_START_DATE BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE) OR (B.EFFECTIVE_END_DATE BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE) OR (B.EFFECTIVE_START_DATE <= A.EFFECTIVE_START_DATE AND B.EFFECTIVE_END_DATE >=A.EFFECTIVE_END_DATE )) GROUP BY A.BUSINESS_GROUP_ID , B.GL_SET_OF_BOOKS_ID , A.PERSON_ID , A.ASSIGNMENT_ID