2013-06-13 38 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個輸出端口一個用於引導,一個用於滯後計算。使用映射參數來配置運行的前導和滯後變量。表達式將端口連接到兩個不同的目標。