如何从PS_JOB表中检索有效的日期empid

时间:2015-04-03 06:58:02

标签: sql peoplesoft sqr

我是peopleoft的新手。我可以在概念层面理解生效日期,但我仍然在SQR中苦苦挣扎。如何从PS_JOB表中检索有效的日期empid?如何从ps_names中为检索到的empid检索有效的empname?提前谢谢!

3 个答案:

答案 0 :(得分:0)

当前名称 - 来自ps_names_vw视图 你可以为ps_job表使用类似的where子句。

select a.emplid,
       a.name_type,
       a.effdt,
       a.last_name,
       a.first_name,
       a.middle_name,
       a.name_prefix,
       a.name_suffix,
       a.last_name_srch,
       a.first_name_srch,
       a.name_display
  from ps_names a
 where a.effdt = (select max (b.effdt)
                    from ps_names b
                   where b.emplid     = a.emplid and
                         b.name_type  = a.name_type and
                         b.effdt     <= to_date (to_char (sysdate, 'YYYY-MM-DD'), 'YYYY-MM-DD'));

答案 1 :(得分:0)

加入姓名和工作表及其各自的生效日期。在这里,我已经雇用了A,L,P,S员工,假设您需要积极的员工&#39;只是名字。如果没有,您可以删除empl_status标准。您还需要在主标准中指定name_type,否则可能会为一个emplid返回多行。

SELECT * FROM PS_NAMES N, PS_JOB J
WHERE N.EMPLID = J.EMPLID
AND N.EFFDT = (SELECT MAX(N1.EFFDT) FROM PS_NAMES N1
                WHERE N1.EMPLID= N.EMPLID
                AND N1.NAME_TYPE = N.NAME_TYPE
                AND N1.EFFDT <= SYSDATE)
AND J.EFFDT = (SELECT MAX(J1.EFFDT) FROM PS_JOB J1
                WHERE J1.EMPLID = J.EMPLID
                AND J1.EMPL_RCD = J.EMPL_RCD
                AND J1.EFFDT <= SYSDATE)
AND J.EFFSEQ = (SELECT MAX(J2.EFFSEQ) FROM PS_JOB J2
                WHERE J2.EMPLID = J.EMPLID
                AND J2.EMPL_RCD = J.EMPL_RCD
                AND J2.EFFDT = J.EFFDT)
AND J.EMPL_STATUS IN ('A','L','P','S')

答案 2 :(得分:0)

以下查询将从PS_JOB中获取Emplid'XXX'员工的最新数据

SELECT * FROM PS_JOB J 在哪里J.EMPLID ='XXX' AND J.EFFDT =(SELECT MAX(J1.EFFDT)                来自PS_JOB J1                在哪里J1.EMPLID = J.EMPLID                AND J1.EMPL_RCD = J.EMPL_RCD                AND J1.EFFDT&lt; TRUNC(SYSDATE)) AND J.EMPL_RCD =(SELECT MAX(J2.EMPL_RCD)                    来自PS_JOB J2                    在哪里J2.EMPLID = J.EMPLID                    AND J2.EFFDT = J.EFFDT) AND J.EFFSEQ =(SELECT MAX(J3.EFFSEQ)                  来自PS_JOB J3                  在哪里J3.EMPLID = J.EMPLID                  AND J3.EMPL_RCD = J.EMPL_RCD                  AND J3.EFFDT = J.EFFDT)
订单来自J.EMPLID,J.EMPL_RCD,J.EFFDT,J.EFFSEQ