SELECT DISTINCT A.EMPLID , A.ADDRESS1 , A.ADDRESS2 , A.ADDRESS3 , A.ADDRESS4 , A.CITY , A.POSTAL , A.STATE , A.COUNTRY FROM PS_ADDRESSES A WHERE ((A.EFF_STATUS = 'A' AND A.ADDRESS_TYPE = 'HOME' AND (A.EFFDT = ( SELECT MAX(EFFDT) FROM PS_ADDRESSES D WHERE D.EMPLID = A.EMPLID AND D.ADDRESS_TYPE = 'HOME' AND D.EFF_STATUS = 'A' AND 1 = ( SELECT COUNT(*) FROM PS_ADDRESSES A1 WHERE A1.EMPLID = A.EMPLID AND A1.ADDRESS_TYPE = 'HOME')) OR (A.EFFDT = ( SELECT MAX(EFFDT) FROM PS_ADDRESSES D WHERE D.EMPLID = A.EMPLID AND D.ADDRESS_TYPE = 'HOME' AND D.EFF_STATUS = 'A' AND D.EFFDT <= %CurrentDateIn AND 1 < ( SELECT COUNT(*) FROM PS_ADDRESSES A1 WHERE A1.EMPLID = A.EMPLID AND A1.ADDRESS_TYPE = 'HOME'))))) OR ((A.EFF_STATUS = 'A' AND A.ADDRESS_TYPE = 'MAIL' AND (A.EFFDT = ( SELECT MAX(EFFDT) FROM PS_ADDRESSES D WHERE D.EMPLID = A.EMPLID AND D.EFF_STATUS = 'A' AND D.ADDRESS_TYPE = 'MAIL' AND 1 = ( SELECT COUNT(*) FROM PS_ADDRESSES A1 WHERE A1.EMPLID = D.EMPLID AND A1.ADDRESS_TYPE = D.ADDRESS_TYPE)) OR A.EFFDT = ( SELECT MAX(EFFDT) FROM PS_ADDRESSES D WHERE D.EMPLID = A.EMPLID AND D.EFF_STATUS = 'A' AND D.ADDRESS_TYPE = 'MAIL' AND D.effdt <= %CurrentDateIn AND 1 < ( SELECT COUNT(*) FROM PS_ADDRESSES A1 WHERE A1.EMPLID = D.EMPLID AND A1.ADDRESS_TYPE = D.ADDRESS_TYPE))) AND (A.EMPLID NOT IN ( SELECT H.EMPLID FROM PS_ADDRESSES H WHERE H.EMPLID = A.EMPLID AND H.EFF_STATUS = 'A' AND H.ADDRESS_TYPE = 'HOME' AND H.EFFDT = ( SELECT MAX(EFFDT) FROM PS_ADDRESSES G WHERE G.EMPLID = H.EMPLID AND G.ADDRESS_TYPE = 'HOME' AND G.EFF_STATUS = 'A')) AND A.EMPLID IN ( SELECT H.EMPLID FROM PS_ADDRESSES H WHERE H.EMPLID = A.EMPLID AND H.EFF_STATUS = 'A' AND H.ADDRESS_TYPE = 'MAIL' AND H.EFFDT = ( SELECT MAX(EFFDT) FROM PS_ADDRESSES G WHERE G.EMPLID = H.EMPLID AND G.ADDRESS_TYPE = 'MAIL' AND G.EFF_STATUS = 'A'))))))
|