pentaho - 如何将条件日期参数传递到表输入步骤?

标签 pentaho kettle pdi

我需要将我的 SQL SELECT 基于日期参数的作业中的多个转换,但我在使其工作时遇到问题。

计划是:在以下条件下参数化 begin_date 和 end_date:如果是任何一个月的 1 号,则参数将成为上个月的第一天和最后一天;如果不是,则为本月第一天,直到昨天。

我已经做了什么:根据修改的 Java 脚本值步骤创建两个参数,并将它们传递给设置变量,所有这些都在第一个转换中。

在倒数第二个转换中,我需要在 SELECT 中使用这些参数。

我尝试过但没有成功:

1) 使用获取变量获取两者(它们出现在下拉列表中,从其中获取它们),创建到表输入的跃点,并将 SQL 代码中的日期更改为 ${fst} 和 ${首先}。尝试过检查“替换脚本中的变量?”和不检查“替换脚本中的变量?”

2) 不使用“获取变量”,而是将它们写入转换属性的“参数”选项卡中。还尝试过检查“替换脚本中的变量?”和不检查“替换脚本中的变量?”

3) 检查“将以前的结果复制到参数吗?”和“现在对每个输入执行?”在第二次转换的作业条目详细信息的“高级”选项卡中。在这种情况下,它会在执行时标记成功,但不执行以下转换。

我想我可能错过了一些简单的东西,但无法通过搜索得到答案。

编辑:一些带有解释的屏幕

1) my first transformation which is to set variables

2) my second transformation which i try to get and use the variables

3) 我正在尝试执行的查询(查看 BETWEEN ${fst} AND ${lst} 部分)

WITH cte AS (
SELECT MAX(data_atendimento) AS data_atendimento, MAX(a.id_customer) AS id_customer, MAX(id_atendimento) AS id_atendimento, MAX(operador) AS operador
FROM tb_atendimento a INNER JOIN tb_param_atd p ON a.id_atendimento = p.id_atd
WHERE id_especializacao = 26 
    AND h_data -> 'CPC_OI' IS NULL 
    AND data_atendimento BETWEEN ${FST} AND ${LST} --DATE_TRUNC('month', CURRENT_DATE) AND CURRENT_DATE + INTERVAL '1 DAY' 
GROUP BY CAST(a.id_customer AS VARCHAR) || CAST(data_atendimento AS VARCHAR))
SELECT *, CASE WHEN MAX(data_atendimento) OVER (PARTITION BY id_customer) = data_atendimento THEN true ELSE false END AS ultimo_atendimento FROM cte;

最佳答案

尝试使用占位符(?)代替变量。

看看我的水壶转换之一的屏幕截图(类似于您想要实现的目标)。 变量“timenow”来自之前的 js 修改步骤,与您的相同。

如果您要使用多个参数,请记住将按照下拉框“参数:”中的出现顺序进行绑定(bind)(也显示在屏幕截图中)

Execute SQL script STEP

关于pentaho - 如何将条件日期参数传递到表输入步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41986284/

相关文章:

hadoop - 通过 IP 连接到 cloudera 虚拟机中的 Hadoop HDFS

java - BIGQUERY - 如何创建与 Pentaho Data Integration (Spoon) 的连接?

javascript - 使用javascript在pentaho中从 "yyyy-mm-dd"到 "dd/mm/yyyy"的日期格式转换

mysql - sql : how to split data from field in pentaho report designer

excel - Pentaho,如何从单元格中提取数据

date - Kettle数据整合: dates always blank on excel output or excel writer

amazon-web-services - Pentaho DI 无法连接到 AWS Redshift - Amazon 错误 100021

mysql - Group by 不提供准确的分组

javascript - 想在pentaho中将String数据类型转换成Date数据类型