List of active employees at a certain point in time.

 3 Replies
 3 Subscribed to this topic
 22 Subscribed to this forum
Sort:
Author
Messages
agersh
Veteran Member
Posts: 81
Veteran Member
    I am looking to produce a list of all employees that had an active employee status at a specific point in time (specific date). For example, all employees that had an active employee status on 10/1/2015. Any idea of the SQL query that would produce these results?
    Joan Herzfeldt
    Veteran Member
    Posts: 74
    Veteran Member
      We've done this before just not three years worth. There are probably other ways to do it, but you can simply use term-date. We have T-SQL so the hard coded date may be different for you.
      select *
      from EMPLOYEE
      where EMP_STATUS < 'S1' --(whatever your Active statuses are)
      or TERM_DATE >= DATEFROMPARTS(2015,10,15)
      Dave Curtis
      Veteran Member
      Posts: 136
      Veteran Member
        For our turnover reporting we have to find who was active on the 1st of the month for each month withing the 12 month reporting period and we often do have to look back years past.

        To do this we use the PAEMPPOS table. This has the position history for any position changes. To determine if a person is active at any given date we use the effect_date and the end_date. If the effect_date is prior to or equal to the date in question and the end date is NULL or after the date in question then we know they were active on that given date.
        In our database 01/01/1700 is used to represent "NULL" in date fields. I know this can be different depending on the initial install that was done so whatever your "NULL" date value is - replace where you see 01/01/1700 with your specific value.

        This is one small portion of our turnover SQL query and it represents the part that would be used to determine active headcount at any point we enter.

        SELECT pae.company
        ,pae.employee
        ,pae.effect_date
        ,pae.end_date
        ,pae.position
        ,pae.fte
        ,pae.job_code
        ,pae.process_level
        ,pae.process_level
        ,pae.department
        ,pae.pay_rate
        ,pae.union_code
        ,pae.bargain_unit
        ,pae.schedule
        ,pae.supervisor
        ,pae.supervisor_ind
        ,pae.pay_grade
        ,pae.pro_rate_a_sal
        FROM paemppos pae
        WHERE pos_level = 1 and pae.effect_date <= TO_DATE('10/01/2015','mm/dd/yyyy')
        AND (pae.end_date >= TO_DATE('10/01/2015','mm/dd/yyyy')
        OR pae.end_date = TO_DATE('01/01/1700','mm/dd/yyyy'))
        ORDER BY pae.employee
        ,pae.effect_date
        ,pae.end_date

        agersh
        Veteran Member
        Posts: 81
        Veteran Member
          Thank you both for your replies. Both replies were helpful. Through my testing Dave's reply provided me with what I needed to accomplish.

          Again Thank You.