Question

I am importing a .CSV file for an HRIS project that will report New Hires and Terminations. I have one report that shows the following date.

|PersNo|Name|EntryDate|TermDate|

I want to split the date so that the people with the Term dates go into one DB and the people with NewHire dates go into another DB.

I think a Conditional Split is the answer but it doesn't seem to want to work. I had the conditions set as such:

|1|EntryDate == EntryDate|
|2|TermDate == TermDate|

I have also thought about a slowly changing dimension. Creating an employee table with all employee information that will reference the information from the Hire/Fire Report and add the Term Date to any employee (using employee number as the relation) that has a term date appear.

Any thoughts on how I should develop are welcome.

Was it helpful?

Solution

You might check for nulls in your condition. For example, ISNULL([TermDate]) == FALSE might indicate a row to be sent to the termination destination.

OTHER TIPS

One other thing to think about is the possibility that an employee will have multiple hire and termination dates and that a single record may not provide complete and accurate reporting, depending on your requirements.

There are two ways to work around this. Either explicitly assume that the hire date is the latest hire date and that the termination date is the latest termination date and assume that if the latest hire date is after there latest termination date that the employee is still working.

The better option is to keep a stack of effective dated records for each employee that shows each transaction over a period of time. Using that method, you are in a better position to provide historical comparisons. To get even more granular you could consider adding an incrementing effective sequence to record multiple transactions on the same day (like PeopleSoft does).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top