将当前值与数据阶段中的先前值进行比较

compare current value with previous value in datastage

我有如下输入

空薪 10 1000 20 2000 30 3000 40 4000

我在顺序文件中需要的输出如下所示。也就是说prevsal应该有上一行的薪水

空薪预估 10 1000 空 20 2000 1000 30 3000 2000 40 4000 3000

我尝试通过将阶段变量指定为 prevsal=inputlink.salary 然后定义输出列 inputlink.salary=prevsal 来使用转换器。我知道这在逻辑上行不通,是的,它行不通。谁能帮我找到解决方案。

你走对了——变压器和阶段变量是正确的选择。 请记住,在转换器中,数据是自上而下处理的。这意味着首先处理第一个(最上面的)阶段变量,然后是第二个,依此类推,最后将数据放在输出 links.

让你输入列:inputlink.salary 假设有两个阶段变量:svPrevSalary(最高) 和第二个 svCurrentSalary

尝试在阶段变量部分进行以下分配:

1. svCurrentSalary  (=) svPrevSalary
2. inputlink.salary (=) svCurrentSalary 

使用

svPrevSalary

作为输出link/字段的推导。

请注意 (=) 只是您必须为第一阶段变量仅指定 svCurrentSalary 的想法。

当我开始 do.i 没有得到预期的结果时,我遇到了同样的问题。 对于这个问题,我们必须记下两件事。 1. 我在服务器上 doing.like 工作,顺序或 parallel.I 在并行环境中工作。 2.请记住link的执行顺序即i/o顺序。

代码- curr_salary -> Prev_Sal, link.salary -> curr_Salary

link到prev_salary输出link到prev_salary

备注 如果您在并行环境中工作,那么您必须在每个阶段的执行部分创建一个顺序模式。 进入Stage->advanced->Execution mode->sequential.

我认为它应该有效。我实际做到了。Transformer_Image 谢谢