2013-01-10 75 views
0

我正在使用Pentaho勺子做一些转换。我正在使用“表格输入”并加入多个表格以获得最终输出表格。Pentaho Kettle勺子日期操作

我需要实现:

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 Get System Data

我的查询是:

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 '?'; 

我在表输入得到错误信息说No value specified for parameter 2

任何建议将不胜感激。

谢谢。

回答

0

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

或者干脆更改查询“2012年11月15日”之间的话和TBLA.date 然后你不需要第二个参数

+0

谢谢你的回复。在“获取系统数据”步骤中,我所看到的是固定日期选项,例如昨天日期,今天日期等。如何输入我自己的手动日期,如“2012-12-3”或“2012-12-4”等等作为查询的输入日期? – Mario

+0

只需使用“添加常量”步骤即可。 – Codek

+0

我删除了“获取系统信息”步骤,并直接用“添加常量”步骤提供表格。所以基本上我的表格只能从 获得输入,只需在名称中添加常量步骤为Date1输入为日期格式为'yyyy-MM-dd'并且值为'2013-01-01'。 2013-01-01应该从TableA替换查询日期的选择ID where date =?; 但是当我运行转换时,在输出中看不到任何东西。任何建议? 另外我的一个查询就像'从表A中选择ID之间的日期?和?'还有什么建议? 非常感谢。 – Mario

0

我个人比较喜欢的一个获取系统信息/添加常数一步模式创建一个包含多个列的行,并将其添加到数据库连接步骤中。然后,用列而不是行替换查询中的参数,并且可以多次指定列。