带数字参数的 Pentaho CDE SQL 查询
Posted
技术标签:
【中文标题】带数字参数的 Pentaho CDE SQL 查询【英文标题】:Pentaho CDE SQL Query with numerical param 【发布时间】:2018-07-17 16:15:47 【问题描述】:我想知道是否可以执行 SQL 查询并将数字参数传递给它。假设我有以下查询:
SELECT
CONCAT(cuatrimestre,' Cuatrimestre') As quarter
, ROUND(SUM(fact_Ventas.cantidad * precioUnitario),0) as amount
FROM fact_Ventas
INNER JOIN dim_Tiempos ON
fact_Ventas.idAnio = dim_Tiempos.idAnio AND
fact_Ventas.idMes = dim_Tiempos.idMes AND
fact_Ventas.idDia = dim_Tiempos.idDia
INNER JOIN dim_Clientes ON dim_Clientes.idCliente = fact_Ventas.idCliente
INNER JOIN dim_Productos ON dim_Productos.idProducto = fact_Ventas.idProducto
WHERE
CAST(fact_Ventas.idAnio As Char) LIKE $paramAnio AND
CAST(fact_Ventas.idMes As Char) LIKE $paramMes AND
CAST(fact_Ventas.idVendedor As Char) LIKE $paramVendedores AND
CAST(fact_Ventas.origen As Char) LIKE $paramOrigen AND
dim_Productos.marca LIKE $paramMarca AND
dim_Clientes.segmentoCliente LIKE $paramSegmento
GROUP BY 1
ORDER BY 1
我想将列数量除以从简单参数中提取的数值。我设法在 where 子句中使用了过滤器,但我无法在列中进行划分。
尝试以下查询:
SELECT
CONCAT(cuatrimestre,' Cuatrimestre') As cuatrimestre
, ROUND( (SUM(fact_Ventas.cantidad * precioUnitario)/$paramValue),0) as Importe
FROM fact_Ventas
INNER JOIN dim_Tiempos ON
fact_Ventas.idAnio = dim_Tiempos.idAnio AND
fact_Ventas.idMes = dim_Tiempos.idMes AND
fact_Ventas.idDia = dim_Tiempos.idDia
INNER JOIN dim_Clientes ON dim_Clientes.idCliente = fact_Ventas.idCliente
INNER JOIN dim_Productos ON dim_Productos.idProducto = fact_Ventas.idProducto
WHERE
CAST(fact_Ventas.idAnio As Char) LIKE $paramAnio AND
CAST(fact_Ventas.idMes As Char) LIKE $paramMes AND
CAST(fact_Ventas.idVendedor As Char) LIKE $paramVendedores AND
CAST(fact_Ventas.origen As Char) LIKE $paramOrigen AND
dim_Productos.marca LIKE $paramMarca AND
dim_Clientes.segmentoCliente LIKE $paramSegmento
GROUP BY 1
ORDER BY 1
但是它给出了一个错误并且没有加载数据。该查询的语法在数据库中经过测试,是正确的。
【问题讨论】:
【参考方案1】:您是否将参数类型设置为数字?它默认为 String ,这对于您的其他参数可能没问题。
【讨论】:
【参考方案2】:问题是我忘记将参数分配给组件,我已将其与 SQL Query 关联但未与组件关联。
【讨论】:
以上是关于带数字参数的 Pentaho CDE SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章
pentaho cde在sql查询中包含/排除where子句
SQL case 语句不适用于多参数 pentaho cde
Pentaho CDE - 如何从 SQL 查询 JDBC 构建图表