Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Human Resources Sample File - Employee Table

Hi Everyone

 

I've been looking at the Human Resources Sample File today in PowerBi Desktop and I think I understand how eveything works and how I could build something similar using my own organsiations data.

 

One thing I'm struggling why we need the date field as the fist field in the employee table, if we didnt have that there and it was just the employee ID what would happen?

 

 

 

  • Anonymous's avatar
    Anonymous
    7 years ago

     

     

    Now Understood: The Date column in the Employee Table is used as follows:

     

    In this dataset, once a month, an extract from the source system is produced. For each month that an employee is active they have a line of data on the first of the month as an employee “snapshot” fact table.

     

    I read the "Data Warehouse Toolkit by Ralph Kimball and Margy Ross which has a small but useful section on thinking about models for HR and how to strucutre them.

     

  • Anonymous's avatar
    Anonymous
    7 years ago

    Hi Anonymous 

     

    I cant find the original post I personally found a soultion for, but this is what you can do, create these 4 messurements,

     

    New Hires = COUNTA ("employment hire date")
     
    Terminated = CALCULATE(COUNTA(("your employments hire date"), USERELATIONSHIP('Calendar'[Date], ("employment termination date"))
     
    Balance = [New Hires] - [Terminated]
     
    Overall Current Employees = CALCULATE([Balance], FILTER (ALL('Calendar'[Date]), 'Calendar'[Date] <= MAX ('Calendar'[Date])))
     
    P.S Use a generated calander date table to make a relansionship between the hire date and termination date, and you will be good to go :)

6 Replies

  • v-chuncz-msft's avatar
    v-chuncz-msft
    Community Support

    Anonymous,

     

    You may just disable the relationship to see the difference.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Anonymous 

     

    Hi, 

     

    Did you ever find a soultion for this, im struggeling to understand what the date in employee table actuly represents ?

     

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Yes, I'm not sure where I would get that date from my own data. I just have Hire/Termination date.

       

      Edit: I see now, each employee line is duplicated for each month of their employment. Not sure how to duplicate this in my own table.

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi Anonymous 

         

        I cant find the original post I personally found a soultion for, but this is what you can do, create these 4 messurements,

         

        New Hires = COUNTA ("employment hire date")
         
        Terminated = CALCULATE(COUNTA(("your employments hire date"), USERELATIONSHIP('Calendar'[Date], ("employment termination date"))
         
        Balance = [New Hires] - [Terminated]
         
        Overall Current Employees = CALCULATE([Balance], FILTER (ALL('Calendar'[Date]), 'Calendar'[Date] <= MAX ('Calendar'[Date])))
         
        P.S Use a generated calander date table to make a relansionship between the hire date and termination date, and you will be good to go :)
    • Anonymous's avatar
      Anonymous
      Not applicable

       

       

      Now Understood: The Date column in the Employee Table is used as follows:

       

      In this dataset, once a month, an extract from the source system is produced. For each month that an employee is active they have a line of data on the first of the month as an employee “snapshot” fact table.

       

      I read the "Data Warehouse Toolkit by Ralph Kimball and Margy Ross which has a small but useful section on thinking about models for HR and how to strucutre them.

       

      • Anonymous's avatar
        Anonymous
        Not applicable

        Makes sense, cant belive I dident figure it out, its so obvious now, especially when looking at single emp ID's :)

         

        Thanks Anonymous