0

我有一个有 5 行的表(目标),其中一列名称:slno 有值 (12,13,14,34,56),我需要根据目标的最大值将数据从源表加载到目标。

例子 :

如果在 slno 列值的源表中,(12,13,14,34,56,88,89,90,99)那么只有(88,89,90,99)值应该转到目标(以及所有行值),基本上我需要从目标中找到最大值,并基于此我需要在该值之后加载行。

我尝试使用tJavaRow, tSetGlobalVar, tAggregateRow,但无法弄清楚如何映射。

4

1 回答 1

0

有很多方法可以做到这一点。

如果您的源表和目标表在同一个数据库上,您可以像这样过滤源查询:

select *
from source
where slno > (select max(slno) from target)

然后加载目标表中的行。

但如果不是,您可以在 Talend 中进行:

在此处输入图像描述

对目标的查找获得 slno 的最大值:

SELECT max(slno)
FROM target

它的模式只包含一列 (max_slno):

在此处输入图像描述

而在内部tMap,只发送源的 slno 大于目标的 slno 最大值的行:

在此处输入图像描述

于 2018-01-12T09:39:56.480 回答