[英]Loop in Kettle/Spoon/Pentaho
我有这样的查询:
SELECT count(distinct ID) FROM TBLC WHERE date BETWEEN ? AND ?;
我正在使用Pentaho Spoon。 我正在使用“执行SQL脚本” /语句。 我看到的选项是每行执行,作为单个语句执行和变量替换。
如果我需要更改查询或需要执行其他步骤,请回复。
编辑:
我正在使用Pentaho Spoon将数据从Infobright数据库(表1,表2)传输到Infobright数据库(表3)。
查询类似于:
SELECT table1.column1, table2.column2
FROM table1 JOIN table2 ON table1.id=table2.id
WHERE table2.date BETWEEN '2012-12-01' AND '2012-12-30'
我想要一种方法,使我不必在每次运行转换时都手动指定日期范围。 我想自动化日期范围。
提前致谢。
根据您的描述,我相信您可以通过使用“生成行”步骤将行添加到包含所需日期的流中,然后为流中的每个日期行生成所需的查询来获取所有您要从源表中获取的行。
您可以将execute用作单个语句并进行变量替换,因为它们最适合您的用例。
将参数StartDate和EndDate添加到转换中,并在查询中使用它们,如下所示。 在“ 执行SQL脚本”步骤中启用“变量替换”。
SELECT table1.column1, table2.column2
FROM table1 JOIN table2 ON table1.id=table2.id
WHERE table2.date BETWEEN **$StartDate** AND **$EndDate**
执行转换时提供StartDate和EndDate的值。
我想日期是在表中或数据库中的文件中,您可以做的是:创建一个工作,将这些参数投入使用并设置变量。 在下一项工作中,您可以使用{date_from} {date to}将它们用作查询的变量
这样,每次运行作业时,它都会占用数据库内部的内容,您当然需要更新date_from和date_to
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.