我正在使用Pentaho PDI 7.1。我试图将数据从Mysql转换为Mysql来改变数据结构。
我正在阅读源表(客户),并且每行我都要运行另一个查询来计算余额。 我试图用Database value lookup来完成它,但也许不是最好的方法。
我要运行这样的查询以获得余额:
SELECT
SUM(
CASE WHEN direzione='ENTRATA' THEN -importo ELSE +importo END
)
FROM Movimento WHERE contoFidelizzato_id = ?
我应该设置从上一步开始的参数。一些建议?
答案 0 :(得分:0)
Database lookup value
可能是一个好主意,特别是如果您习惯于数据库推理,但可能会导致许多查询效率最高。
更多PDI-ish风格将使查询如下:
SELECT contoFidelizzato_id
, SUM(CASE WHEN direzione='ENTRATA' THEN -importo ELSE +importo END)
FROM Movimento
GROUP BY contoFidelizzato_id
并将其用作Lookup Stream Step的信息源,如下所示:
更多PDI-ish风格是将源表(客户)转移到两个流中:一个用于保存源行,另一个用contoFidelizzato_id分组。当然,您需要formula
或Javascript
,或者在Table input
的SQL中添加公式,以便在需要时更改符号。
测试以了解哪种策略在您的情况下更好。您很快就会发现PDI非常擅长处理大数据。