SELECT J.EMPLID, J.EMPL_CD, J.EFFDT, J.EFFSEQ FROM PS_JOB J WHERE J.EFFDT = (SELECT MAX(PJ.EFFDT) FROM PS_JOB PJ WHERE PJ.EMPLID = J.EMPLID AND PJ.EMPL_CD = 0 AND PJ.EFFDT < SYSDATE); -- 后半句语句,查询出当前表中所有的员工ID号所对应的记录中最大的生效日期,前半句语句,根据所有的最大的生效日期查询出所有的记录。
查询生效日期最大,生效序号最大的,即最新的所有数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14
SELECT J.EMPLID, J.EMPL_CD, J.EFFDT, J.EFFSEQ FROM PS_JOB J WHERE J.EFFDT = (SELECT MAX(PJ.EFFDT) FROM PS_JOB PJ WHERE PJ.EMPLID = J.EMPLID AND PJ.EMPL_CD = 0 AND PJ.EFFDT < SYSDATE) AND J.EFFSEQ = (SELECT MAX(PJ1.EFFSEQ) FROM PS_JOB PJ1 WHERE PJ1.EMPLID = J.EMPLID AND PJ1.EMPL_CD = 0 AND PJ1.EFFDT = J.EFFDT); -- 后半句语句,查询出当前表中所有的员工ID号所对应的记录中最大的生效日期并且生效记录数值最大,前半句语句,根据所有的最大的生效日期和生效记录数值查询出所有的记录。且,生效日期小于系统日期。