2017-07-12 38 views
0

目前這裏是我的流程:了Talend - 拆分一行到多行基於某種邏輯

tOracleInput -> tMap -> tFileOutput 

在tOracleInput select語句的輸出是這樣的:

ID | Name | Amount | PercentageOfMixed | IsMixedFlag 
1  C0000001 100.00  0.55     Y 

現在邏輯爲: - 如果isMixedFlag爲'Y',則輸出的數量應爲2,每個數字的金額爲百分比 - 每行的名稱字段的值會附加前綴A或B.

輸出:

ID | Name | Amount | IsMixedFlag 
1  C0000001A 55.00  Y 
2  C0000001B 45.00  Y 

這是可行的?

在此先感謝您的所有想法。

回答

0

你可以試試下面的查詢 -

SELECT ID, Name, Amount * PercentageOfMixed Amount, IsMixedFlag 
FROM your_table 
WHERE IsMixedFlag = Y 
UNION ALL 
SELECT ID, Name, Amount * (1 - PercentageOfMixed) Amount, IsMixedFlag 
FROM your_table 
WHERE IsMixedFlag = Y 
ORDER BY ID 

這可能不是你正在嘗試才達到確切的結果,但這個可以給你的想法實現自己的最終結果。

+0

我說我不想和工會一起去,因爲實際上我們的查詢很大並且有很多連接,所以把它放在工會上都會執行兩次。這就是爲什麼我在想如果這可以通過talend來完成 – lorraine