1

我正在创建一个 informatica 工作流,它可以从 DB2 数据库的两个表中提取数据并加载到一个临时表中。假设两个源表名称是 Account (Parent) 和 Activities (Child)。他们有 1:M 的关系。意味着一个帐户可以有许多活动(Account.PK = Activities.FK)。活动表有两列 - 第一个“类型”,其值可以是“已支付”、“将支付”或“未支付”。第二列是“Created_Date”日期时间数据类型,无论何时创建新的活动记录、日期和时间会在这个领域得到印记。现在,在临时表中加载数据的条件是-“对于帐户记录,它将第一次在活动表中检查今天的付费活动(类型 = 付费)。如果它发现多个付费活动,然后它会从中挑选出最新创建的一个(Created_Date 列)。如果该帐户没有付费活动记录,那么它将选择最新创建的“Will-Pay”活动。”意思是,它应该为一个帐户选择今天(Sysdate)的最新付费活动,如果它不存在,那么只有它将选择今天最新的 Will-pay 活动。请帮助我了解如何在 Informatica 工作流程中实现此逻辑以及我应该使用哪些转换以及如何使用?非常感谢。请帮助。请帮助我了解如何在 Informatica 工作流程中实现此逻辑以及我应该使用哪些转换以及如何使用?非常感谢。请帮忙。请帮助我了解如何在 Informatica 工作流程中实现此逻辑以及我应该使用哪些转换以及如何使用?非常感谢。请帮忙。

4

1 回答 1

0

在 SQL 上执行此操作的最佳方法是在 ETL 上实现业务逻辑,这并不好。但是,如果您坚持,它可以通过多种方式创建。例如:

使用 SQL 覆盖您可以为带有覆盖 SQL(以及列)的活动表创建 3 个查找转换,并为条件创建一个表达式转换。

  1. 查找多个“付费”活动帐户
  2. 查找以查找每个帐户的最后“付费”活动
  3. 查找以查找每个帐户的最后“将支付”活动
  4. 根据 1-3 个查找结果返回正确活动键的表达式

如果没有 SQL 覆盖,您需要使用过滤器、聚合器、连接器转换重新创建类似的逻辑。

于 2012-03-11T17:54:35.553 回答