我正在尝试使用Informatica PowerCenter根据以下标准在Target中加载一组策略编号。
我想选择所有那些政策编号的行,Rider = 0的策略
这是我的来源: -
Policy Rider Plan
1234 0 1000
1234 1 1010
1234 2 3000
9090 0 2000
9090 2 2545
4321 3 2000
4321 1 2000
目标应如下所示: -
Policy Rider Plan
1234 0 1000
1234 1 1010
1234 2 3000
9090 0 2000
9090 2 2545
不会加载政策号码4321。
如果我使用filter作为Rider = 0,那么我会错过以下行: -
1234 1 1010
1234 2 3000
9090 0 2000
9090 2 2545
使用PowerCenter Designer加载此类数据的理想方法是什么?
在相同映射中的另一个限定符中使用相同的源,使用过滤器作为Rider = 0以获取具有Rider = 0的唯一策略编号的列表,然后在策略编号上使用具有常规源的加入者。这应该工作。
另一种方法是根据策略和Rider对数据进行排序,并使用条件类似于下面的变量端口。
v_validflag=IIF(v_policy_prev!=policy, IIF(Rider=0, 'valid','invalid'), v_validflag)
v_policy_prev=policy
然后过滤有效记录。
有很多选择。这是两个...... 第一: 它看起来像:
// AGGREGATOR \\
SOURCE >> SOURCE QUALIFIER >> SORTER << >> JOINER >> TARGET
\\============//
将源限定符(SQ)中的所有端口连接到SORTER转换(或在SQ本身中排序),并为“策略”和“骑行者”定义排序键。之后将拆分流分成两个管道:
......目标
第二种选择: 只需覆盖源限定符中的SQL ...
WITH PLC as (
select POLICY
from SRC_TBL
where RIDER=0)
select s.POLICY, s.RIDER, s.PLAN
from PLC p left JOIN SRC_TBL s on s.POLICY = p.POLICY;
可能会有所不同取决于您的源表结构...