Oracle-生效日期EFFDT和生效序号EFFSEQ

查询生效日期最大的所有记录

1
2
3
4
5
6
7
8
9
 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号所对应的记录中最大的生效日期并且生效记录数值最大,前半句语句,根据所有的最大的生效日期和生效记录数值查询出所有的记录。且,生效日期小于系统日期。