2013-06-13 40 views
2

我们如何在Informatica中使用Lead和Lag功能?informatica中的Lead和Lag功能

Name | No. 
------------ 
X  | 100 
Y  | 200 
Z  | 300 

我必须把它转换为:

Name | No. | Lead(No.) 
----------------------------- 
X  | 100 | 200 
Y  | 200 | 300 
Z  | 300 | 100 


Name | No. | Lag(No.)  
---------------------------- 
X  | 100 | 0 
Y  | 200 | 100 
Z  | 300 | 200 

我所用的逻辑是:

EXP转型

Name (input & Output Port) 
No. (input) 
O_No.(VAR)=IIF(Prv_no IS NULL,0,No.) 
Prv_no.(VAR)=No. 

这对滞后功能。

回答

1

从来没有这样做,但我会使用评估的顺序。在EXP转换中,输入端口在变量端口之前被评估,然后在输出端口之前评估端口。此外,该行一次只有一个。

如果您发送到EXP TRAN排序数据,您可以模拟lag()函数。对于Lead(),您应该反转排序。

0

多ways-

  1. 您可以使用RANK改造,检查等级(R)为No..Set 选择顶/底为顶部和对数秩为1 获得铅值。**设置顶部/底部底部和队伍数 为1获得滞后值。然后在表达式转换中使用这些值,我们可以实现前导/后退 函数。 ())

    2.使用SQL查询在源限定符,选择MAXMIN(得到相应的引线和滞后值。

0

您可以使用Informatica Expressions实现领先和滞后。对于每一个输入行,使2个输出端口一个用于引导,一个用于滞后计算。使用映射参数来配置运行的前导和滞后变量。表达式将端口连接到两个不同的目标。