|
SELECT A.LM_PERSON_ID , B.LM_NAME_TYPE , B.NAME , B.NAME_PREFIX , B.NAME_SUFFIX , B.LAST_NAME_SRCH , B.FIRST_NAME_SRCH , B.LAST_NAME , B.FIRST_NAME , B.MIDDLE_NAME , A.LM_EXT_PERSON_FLG , A.LM_HR_EMPLID , C.LM_LE_ID , B.COUNTRY_NM_FORMAT , B.NAME_AC , B.LM_NAME_DISPLAY FROM PS_LM_PERSON A , PS_LM_PERSON_NAME B , PS_LM_CURR_JOB_VW C WHERE B.LM_PERSON_ID = A.LM_PERSON_ID AND B.LM_DISPLAY_FLAG = 'Y' AND (B.EFFDT = ( SELECT MAX(D.EFFDT) FROM PS_LM_PERSON_NAME D WHERE D.LM_PERSON_ID = B.LM_PERSON_ID AND D.LM_NAME_TYPE = B.LM_NAME_TYPE AND D.EFFDT <= %CurrentDateIn AND EXISTS ( SELECT D1.EFFDT FROM PS_LM_PERSON_NAME D1 WHERE D1.LM_PERSON_ID = B.LM_PERSON_ID AND D1.LM_NAME_TYPE = B.LM_NAME_TYPE AND D1.EFFDT <= %CurrentDateIn)) OR B.EFFDT = ( SELECT MIN(E.EFFDT) FROM PS_LM_PERSON_NAME E WHERE E.LM_PERSON_ID = B.LM_PERSON_ID AND E.LM_NAME_TYPE = B.LM_NAME_TYPE AND E.EFFDT > %CurrentDateIn AND NOT EXISTS ( SELECT E1.EFFDT FROM PS_LM_PERSON_NAME E1 WHERE E1.LM_PERSON_ID = B.LM_PERSON_ID AND E1.LM_NAME_TYPE = B.LM_NAME_TYPE AND E1.EFFDT <= %CurrentDateIn))) AND C.LM_PERSON_ID = A.LM_PERSON_ID AND ((B.LM_NAME_TYPE = 'PRF') OR (B.LM_NAME_TYPE = 'PRI' AND NOT EXISTS ( SELECT LM_NAME_TYPE FROM PS_LM_PERSON_NAME WHERE LM_PERSON_ID = B.LM_PERSON_ID AND LM_NAME_TYPE = 'PRF')))
|