1

我有一个这样的查询:

SELECT count(distinct ID) FROM TBLC WHERE date BETWEEN ? AND ?;

我正在使用 Pentaho Spoon。我正在使用“执行 SQL 脚本”/语句。我看到的选项是对每一行执行、作为单个语句执行和变量替换。

如果我需要更改我的查询或需要其他步骤来实施,请回复。

编辑:

我正在使用 Pentaho Spoon 将数据从 Infobright 数据库(table1、table2)传输到 Infobright 数据库(table3)。

查询类似于:

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'

我想要一种方法,这样我就不必在每次运行转换时手动指定日期范围。我想自动化日期范围。

提前致谢。

4

3 回答 3

2

根据您所描述的,我相信您可以通过使用生成行步骤将行注入包含所需日期的流中来完成您想要的操作,然后为流中的每个日期行生成所需的查询以获取所有您想要从源表中获取的行。

于 2013-01-08T16:31:39.153 回答
0

您可以将 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 的值。

于 2015-08-27T09:35:07.950 回答
-1

我猜日期在数据库中的表或文件中,您可以做的是:创建一个作业,将这些参数获取到蒸汽并设置变量。在下一份工作中,您可以使用 {date_from} {date to} 将它们用作查询的变量

这样,每次运行作业时,您当然需要在数据库中更新 date_from 和 date_to

于 2014-11-29T13:14:01.760 回答