【问题标题】:INSERT 3 flag in a mapping in relation to a field in a table与表中的字段相关的映射中的 INSERT 3 标志
【发布时间】:2025-12-23 11:55:16
【问题描述】:

我在电源中心设计器中有这种情况:

我有第一个表 COSTO_PDR 主键:

ID_PDR and YEARS

我有第二张表 GAS_COSTO_PDR_PREMI_STOR 主键:

ID_PDR,YEARS and ID_TIPOLOGIA_PREMIO.

ID_TIPOLOGIA_PREMIO 仅具有以下 3 个值之一:A,B and C.

我想要我的目标TARGET_COSTO_PDR: 该字段:ID_PDR YEARS A B C

其中A, B and C 是与ID_TIPOLOGIA_PREMIOID_TIPOLOGIA_PREMIO 的值相关的布尔字段@..

我为获取ID_TIPOLOGIA_PREMIO 进行了查找转换,但我只有一个值。

例如:

COSTO_PDR
---------------
ID_PDR | YEARS|
---------------
1111111  2014

GAS_COSTO_PDR_PREMI_STOR
---------------------------------------
ID_PDR  |  YEARS  |ID_TIPOLOGIA_PREMIO|
---------------------------------------
1111111  2014       A
1111111  2014       B
1111111  2014       C

TARGET_COSTO_PDR
------------------------------------
ID_PDR |  YEARS  |  A  |  B  |  C  |
------------------------------------
1111111  2014      Y      Y    Y

我如何才能在 POWERCENTER DESIGNER 中实现这个目标???? 感谢您的帮助

【问题讨论】:

    标签: database etl informatica informatica-powercenter


    【解决方案1】:

    GAS_COSTO_PDR_PREMI_STOR 上使用所有三个字段的条件创建一个未连接的查找

    ID_PDR = inp_ID_PDR
    YEARS = inp_YEARS
    ID_TIPOLOGIA_PREMIO = inp_ID_TIPOLOGIA_PREMIO
    

    从查找中返回任一字段

    现在在表达式转换中创建 3 个输出端口,对应于您的 3 个目标字段 A、B 和 C,使用以下表达式:

    out_AIIF(ISNULL(LKP.lkp_GAS_COSTO_PDR_PREMI_STOR(src_ID_PDR, src_YEARS, 'A')),'N','Y')

    out_BIIF(ISNULL(LKP.lkp_GAS_COSTO_PDR_PREMI_STOR(src_ID_PDR, src_YEARS, 'B')),'N','Y')

    out_CIIF(ISNULL(LKP.lkp_GAS_COSTO_PDR_PREMI_STOR(src_ID_PDR, src_YEARS, 'C')),'N','Y')

    【讨论】: