【问题标题】:How to do it in Informatica如何在 Informatica 中进行操作
【发布时间】:2021-04-23 09:19:12
【问题描述】:

Informatica 新手。 例如:这是一个平面文件到平面文件加载。 我有一个表达式计算了下面给出的样本的数据: 有些 CUST 有一个带有 N 标志的条目,有些有两个带有 N 和 Y 的条目。 我只需要将 1 和 N 或 2 和 Y 出现在目标表上,如下所述,请告诉我如何在 Informatica 中执行此操作。

来源 CUST-111|N|1 CUST-222|N|1 CUST-222|Y|2 CUST-333|N|1 CUST-444|N|1 CUST-555|N|1 CUST-555|Y|2 CUST-666|N|1 CUST-666|Y|2

目标: CUST-111|N|1 CUST-222|Y|2 CUST-333|N|1 CUST-444|N|1 CUST-555|Y|2 CUST-666|Y|2

非常感谢大家

【问题讨论】:

    标签: informatica informatica-powercenter


    【解决方案1】:

    您可以先计算客户数量。然后,如果 count = 1 且 flag = N,则将其传递给目标,否则如果 count > 1,则仅将 flag = Y 的记录传递给目标。
    以下步骤-

    1. 按客户 ID (CID) 对数据进行排序
    2. 使用聚合器计算计数。 使用CUST_ID 作为分组依据。创建一个新的输出端口
      out_FLAG_CNT = COUNT(*)
    3. 使用 joiner 连接第 2 步和第 1 步。加入条件是客户 ID。
    4. 然后使用具有以下条件的过滤器-
      IIF (out_FLAG_CNT>1 AND FLAG='Y',TRUE, IIF( out_FLAG_CNT=1 AND FLAG='N', TRUE, FALSE))
    5. 最后将此数据链接到目标。
                                |-->Agg( count  by CID)-| 
    SQ --> SRT (Sort by CID) -->|---------------------->|JNR (on CID) -->FIL (Cond above) --> Target
    

    请注意,如果您有超过 1 个 N 或超过 1 个 Y 数据,则上述方法将不起作用,您需要在最后附加另一个聚合器。

    【讨论】:

      猜你喜欢
      • 2016-05-17
      • 2013-06-25
      • 2012-06-08
      • 2013-08-28
      • 2013-01-08
      • 2019-05-31
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多