【发布时间】:2017-09-17 09:15:30
【问题描述】:
我会先尝试在抽象的层面上解释这个问题:
我有 X 数量的数据作为输入,它总是会有一个字段 DATE。之前,作为输入(在某些过程之后)的日期放在表格中作为输出。现在,我被要求输入输入日期和收到的最小日期和从那一刻起一年之间的任何日期。如果这两个日期之间的某一天最初没有输入,则所有字段都必须带有 0 或等效值。
示例。我有两个输入。一个带有“18/03/2017”,另一个带有“18/03/2018”。我现在需要为“18/03/2017”和“18/04/2017”之间的所有缺失日期创建输出数据。因此,输出 '19/03/2017',每个字段都为 0,第 20 和 21 日也是如此,依此类推。
我知道以编程方式执行此操作,但在 powercenter 上我不知道。我被告知要执行以下操作(我已经完成了,但我想知道更好的方法):
获取最小日期,day0。然后,使用聚合器创建 365 个字段,每个字段都有“day0”+1、day0+2 等,以创建人工年份。
之后,我们进行了一些转换,例如对日期进行排序、它们之间的联合,以便为加入者准备好数据。连接器的想法是在原始数据和所有字段都为 0 的数据以及我们从前一个聚合器获得的数据之间进行完全外连接。
然后一个路由器用它的一个组选择具有实际日期的数据(和不带空值的字段)和其他所有字段都为空的组,然后给所述字段一个 0 以最终写入表。
我想知道如何实现这一点,对于初学者来说,无需将日期添加 365 天。如果我要在 10 年内而不是一年中执行相同的过程,那么这项任务很快就会变得可笑。
我想知道 XOR 类型的操作,或者其他一些可以减少我(可能是错误地)认为是一项简单任务需要完成的步骤的功能。目前,我现在需要 5 个步骤才能知道两个日期之间缺少哪些日期,从那时起最少和一年。
我试图尽可能地清楚,但如果我在任何时候失败了,请告诉我!
【问题讨论】:
标签: date informatica informatica-powercenter