按日期拆分数据

时间:2013-07-08 19:56:40

标签: ssis conditional-statements scd

我正在为将报告新员工和终止的HRIS项目导入.CSV文件。 我有一个报告显示以下日期。

|PersNo|Name|EntryDate|TermDate|

我想分割日期,以便具有Term日期的人进入一个数据库,而拥有NewHire日期的人进入另一个数据库。

我认为条件性拆分是答案,但它似乎并不想工作。 我有条件设置:

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

我也想过一个缓慢变化的维度。 创建一个包含所有员工信息的员工表,该信息将引用“雇用/火灾报告”中的信息,并将“任期”日期添加到任何具有期限日期的员工(使用员工编号作为关系)。

欢迎任何关于我应该如何发展的想法。

2 个答案:

答案 0 :(得分:2)

您可以检查条件中的空值。例如,ISNULL([TermDate]) == FALSE可能表示要发送到终止目标的行。

答案 1 :(得分:0)

另一件需要考虑的事情是,员工可能会有多个雇用和终止日期,并且单个记录可能无法提供完整准确的报告,具体取决于您的要求。

有两种方法可以解决这个问题。要么明确假设雇用日期是最近的雇用日期,并且终止日期是最晚终止日期,并假设最新雇用日期是在雇员仍在工作的最后终止日期之后。

更好的选择是为每位员工保留一堆有效的日期记录,以显示一段时间内的每笔交易。使用该方法,您可以更好地提供历史比较。为了更加精细,你可以考虑在同一天添加一个递增的有效序列来记录多个事务(就像PeopleSoft那样)。