Pentaho水壶勺日期操作

Pentaho水壶勺日期操作,pentaho,kettle,Pentaho,Kettle,我正在用Pentaho勺子做一些转换。我使用“表输入”并连接多个表以获得最终的输出表 我需要实现: SELECT COUNT(distinct ID) FROM TBLA join TBLB ON TBLA.ID=TBLB.ID WHERE TBLA.ID=334 AND TBLA.date = '2013-1-9' AND TBLB.date BETWEEN '2012-11-15' AND '2013-1-9'; 我正在手动插入“2012-11-15”,但我正在使用Get Sy

我正在用Pentaho勺子做一些转换。我使用“表输入”并连接多个表以获得最终的输出表

我需要实现:

SELECT COUNT(distinct ID)
FROM TBLA join TBLB ON TBLA.ID=TBLB.ID
WHERE
  TBLA.ID=334
  AND TBLA.date = '2013-1-9'
  AND TBLB.date BETWEEN '2012-11-15' AND '2013-1-9';
我正在手动插入“2012-11-15”,但我正在使用
Get System Data
插入“2012-1-9”。我正在使用1
获取系统数据

我的问题是:

SELECT COUNT(distinct ID)
FROM TBLA join TBLB ON TBLA.ID=TBLB.ID
WHERE
  TBLA.ID=334
  AND TBLA.date='?'
  AND TBLB.date BETWEEN '2012-11-15' AND '?';
我在表输入中得到错误消息,说
没有为参数2指定值

如有任何建议,将不胜感激


谢谢你。

简单一点;您需要“复制”系统日期。因此,在“获取系统数据”中添加另一行,称为“date2”或其他内容,使其与第一行相同,然后它将填充第二个参数,或者

或者简单地将查询改为“2012-11-15”和TBLA.date之间
那么您就不需要第二个参数了,我个人更喜欢使用Get System Info/Add Constants步骤的模式来创建一行,其中包含多个列,这些列将馈送到数据库连接步骤中。然后将查询中的参数替换为列而不是行,并且可以多次指定列。

感谢您的回复。在“获取系统数据”步骤中,我看到的是固定日期选项,如昨天日期、今天日期等。如何输入自己的手动日期,如“2012-12-3”或“2012-12-4”等作为查询的输入日期?只需使用“添加常量”步骤。我删除了“获取系统信息”步骤,并直接使用“添加常量”步骤输入表。因此,我的表基本上只从“添加常量”步骤获取输入,名称为“Date1”,类型为“Date”,格式为“yyyy-MM-dd”,值为“2013-01-01”。2013-01-01应该替换查询日期的select ID from TableA,其中date=?;但是当我运行转换时,我在输出中什么也看不到。有什么建议吗?另外,我的一个查询类似于“从表中选择ID日期在哪里?”?还有什么建议吗?非常感谢。步骤中的行数必须与查询中的行数相同。您还必须勾选“使用上一步的数据”选项并选择相关步骤。如果所有其他操作都失败,那么请预览步骤中的数据,以确保其正确输入。现在我了解了多个“?”值的多个输入。我仍然坚持为查询提供恒定的输入。我使用“添加常量”步骤给出名称(NewDate)、类型(Date)、格式(yyyy-MM-dd)和值2013-01-02。然后我将其传递到“获取系统信息”步骤,类型为“以前的工作输入结果”。但我仍然没有看到任何输出。有什么建议吗?:)