在talend中的(按colname分区)上实现行数()
如何为Talend中的以下数据在(按colname分区)上实现在talend中的(按colname分区)上实现行数(),talend,Talend,如何为Talend中的以下数据在(按colname分区)上实现行号() Product_Category Product_Item 100 A123 200 B678 200 B234 100 A456 200 B345 这可以在tmap组件中完成吗 您可以使用Numeric.sequence函数来完成此操作 例: tFixedFlowInput->tMap->tLogRow 步骤 在tMap中,定义一个变量,如seq 变量的类型应为int 变量的公式将使用Numeric.sequence,产
行号()
Product_Category Product_Item
100 A123
200 B678
200 B234
100 A456
200 B345
这可以在tmap组件中完成吗 您可以使用Numeric.sequence函数来完成此操作
例:
tFixedFlowInput->tMap->tLogRow
步骤
在tMap中,定义一个变量,如seq
变量的类型应为int
变量的公式将使用Numeric.sequence,产品类别作为序列标识符
例如:
数字序列(第1行产品类别,1,1)
将seq和其他两个源列放在tmap的输出上
将输出发送到其他对象,如tLogRow
使用示例数据,以下是输出
.----------------+------------+---.
| tLogRow_1 |
|=---------------+------------+--=|
|product_category|product_item|seq|
|=---------------+------------+--=|
|100 |A123 |1 |
|200 |B678 |1 |
|200 |B234 |2 |
|100 |A456 |2 |
|200 |B345 |3 |
'----------------+------------+---'
这里有一个问题,我将数字序列应用于输入。。我刚刚添加了一个序列行的输出结果是乱七八糟的
我希望我的行号从2开始,在列invoice的基础上增加1,因此在变量字段中,我创建了一个变量var_rw,并将其定义为Numeric.sequence(invoice,2,1),并将其指向rwnbr列var.var_rw
但是我的输出是错误的:(如果你看到输出,如果我有两张发票,它跳过一个数字,并将其编号为4
发票代码实际预期
i123 ASD 4 2
i123 DFG 5 3
i234 DTH 6 2
i234 RDF 7 3
i234 SDF 8 4
i234 WES 9 5您的数据源是什么..如果是数据库,则在tDBXInput组件中更容易完成此行编号().源是文件n目标也是文件谢谢,这已起作用,但如果我需要按另一列的顺序工作,这是否可能?例如,上面的行编号()(按col1分区按col2排序)…到目前为止,我们刚刚实现了(按分区)上的行数()此外,order by必须在日期列上完成,以提取最新日期的记录。您当然可以更改订单。如果您在tMap之前按产品项目排序,它仍然有效,并且您将获得分配稍有不同的序列号。例如:B234将获得seq 1。对输出格式表示歉意。我正在发布f从我的手机…所以我无法正确格式化它