How to achieve the Assignment History from ORACLE SQL query

--Create a DB View as below, and refer this where ever you need
CREATE OR REPLACE FORCE VIEW ASSIGNMENT_HISTORY_V
(
   PERSON_ID,
   ASSIGNMENT_ID,
   ASSIGNMENT_NUMBER,
   EFFECTIVE_START_DATE,
   ORGANIZATION_ID,
   NEXT_ORGANIZATION_ID,
   POSITION_ID,
   NEXT_POSIT,
   GRADE_ID,
   NEXT_GRADE,
   JOB_ID,
   NEXT_JOB
)
AS
     SELECT EFFECTIVE_START_DATE desc),
           ASG_HIST."PERSON_ID",
            ASG_HIST."ASSIGNMENT_ID",
            ASG_HIST."ASSIGNMENT_NUMBER",
            ASG_HIST."EFFECTIVE_START_DATE",
            ASG_HIST."ORGANIZATION_ID",
            ASG_HIST."NEXT_ORGANIZATION_ID",
            ASG_HIST."POSITION_ID",
            ASG_HIST."NEXT_POSIT",
            ASG_HIST."GRADE_ID",
            ASG_HIST."NEXT_GRADE",
            ASG_HIST."JOB_ID",
            ASG_HIST."NEXT_JOB"
       FROM (SELECT pah.person_id,
                    pah.assignment_id,
                    pah.assignment_number,
                    pah.EFFECTIVE_START_DATE,
                    pah.ORGANIZATION_ID,
                    LEAD (organization_id, 1)
                    OVER (PARTITION BY PERSON_ID ORDER BY EFFECTIVE_START_DATE)
                       NEXT_ORGANIZATION_ID,
                    pah.position_id,
                    LEAD (pah.position_id, 1)
                    OVER (PARTITION BY PERSON_ID ORDER BY EFFECTIVE_START_DATE)
                       NEXT_POSIT,
                    PAH.GRADE_ID,
                    LEAD (GRADE_ID, 1)
                    OVER (PARTITION BY PERSON_ID ORDER BY EFFECTIVE_START_DATE)
                       NEXT_GRADE,
                    PAH.JOB_ID,
                    LEAD (JOB_ID, 1)
                    OVER (PARTITION BY PERSON_ID ORDER BY EFFECTIVE_START_DATE)
                       NEXT_JOB
               FROM PER_ASSIGNMENT_HISTORY_VIEW pah
              WHERE 1 = 1
                         ) ASG_HIST
      WHERE     1 = 1
            AND (   NVL (NEXT_POSIT, '-99') <> position_id
                 OR NVL (NEXT_GRADE, '-99') <> GRADE_ID
                 OR NVL (NEXT_ORGANIZATION_ID, '-99') <> ORGANIZATION_ID
                 OR NVL (NEXT_JOB, '-99') <> JOB_ID)
   ORDER BY ASG_HIST.EFFECTIVE_START_DATE;



Comments

Popular posts from this blog

Schedule the Data Extract in Fusion HCM hourly or on any custom frequency

Life time of a SSHR transaction in hr api transaction tables