有会用KETTLE的大哥吗,KETTLE代替SQL进行子查询

通过kettle代替SQL代码去进行子查询,输出的结果要达到SQL的查询结果。SQL代码如下,在kettle里面应该用哪些步骤?

SELECT  YEAR(DATEADD(mm, -1, GETDATE()))as FYEAR,

             MONTH(DATEADD(mm, -1, GETDATE()))AS FMONTH,

             A.FLOT,

             A.FLOT_TEXT,

             A.FNUMBER,

             A.FOLDNUMBER,

             SUM(A.FREALQTY)[FREALQTY],

             SUM(A.FTAXPRICE)/SUM(A.FREALQTY)[FTAXPRICE]

FROM  (SELECT  TSI.FLOT,

                           TSI.FLOT_TEXT,

                           TBM.FNUMBER,

                           TBM.FOLDNUMBER,

                           TSI.FREALQTY,

                           TF.FTAXPRICE

              FROM    T_STK_INSTOCKENTRY TSI 

                            LEFT JOIN T_STK_INSTOCK TS ON TSI.FID=TS.FID

                            LEFT JOIN T_BD_MATERIAL TBM ON TSI.FMATERIALID=TBM.FMATERIALID

                            LEFT JOIN T_STK_INSTOCKENTRY_F TF ON TSI.FENTRYID=TF.FENTRYID

              WHERE  EXISTS(SELECT TAO.FLOT 

                                         FROM   T_AR_RECEIVABLEENTRY_O TAO 

                                                      LEFT join T_AR_RECEIVABLE TR ON TAO.FID=TR.FID 

                                         WHERE  TAO.FLOT=TSI.FLOT 

                                                       AND TAO.FLOT!='' 

                                                       AND DATEDIFF(mm, TR.FDATE, GETDATE())=1) 

              AND TSI.FLOT!='' 

              AND TS.FCANCELSTATUS='A' 

              AND TS.FDOCUMENTSTATUS='C')A 

GROUP BY A.FLOT,A.FLOT_TEXT,A.FNUMBER,A.FOLDNUMBER

企业微信截图_20210804102618.png相当于用KETTLE代替SQL进行子查询,在KETTLE里用哪些步骤可以达到,连接和转换都需要用到哪些步骤

------------------------------------------------------------------------------------------

我想问一下,我这样写有没有问题,具体细节我还没写,步骤是这样对吗?按我SQL的语句来的话,kettle里面步骤企业微信截图_20210805160408.png

    

用户zM8pH9695594 发布于 2021-8-4 10:14 (编辑于 2021-8-5 16:05)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户zM8pH9695594Lv2见习互助
发布于2021-8-6 17:05

111.png

最佳回答
0
linbodingLv6中级互助
发布于2021-8-4 10:20

表输入    表输出

  • 用户zM8pH9695594 用户zM8pH9695594(提问者) 中间过程,表输入不要写SQL,用一张张表输入代表SQL里的表,通过字段选择合拼,达到子查询的结果
    2021-08-04 10:23 
最佳回答
0
芥末不辣Lv5见习互助
发布于2021-8-4 10:25(编辑于 2021-8-4 12:26)
  1. 新建转换,输入 - 表输入  - 新建数据库连接VKR]ZA0[5(T8S[7FC]K`OJ5.png

  2. 如果是MYSQL数据库还需要下载连接的JDBC驱动包。下载地址 https://dev.mysql.com/downloads/connector/j/

O~ALH{QC4@KSAODFN@P$G@3.png

把你的SQL 语句直接粘贴到图1的SQL位置 ,点击预览就可以看到数据了。

------------------------------------------------------------------------------------------------------

查询出结果之后你要进行什么操作?

------------------------------------------------------------------------------------------------------

image.png

给你一个案例参考,需求:

把业务系统每天产生的订单,增量同步到本地数据库。且如业务系统的单据发生修改及删除,本地数据库也同步更新。

通过合并记录比较对数据打上标签,用SWITCH/CASE组件对不同标签的数据进行分流处理。

  • 芥末不辣 芥末不辣 回复 用户zM8pH9695594(提问者) 你这个需求有点奇葩,明明SQL能搞定的事情为啥搞得那么复杂。把SQL的查询结果生成一张新的表,然后做一个定时更新,要查询的时候直接查新表不就行了吗
    2021-08-04 12:41 
  • 用户zM8pH9695594 用户zM8pH9695594(提问者) 回复 芥末不辣 没有办法,并不是非得搞这么麻烦,本来是写SQL的,但是领导说要看一下我KETTLE能不能写,我KETTLE又不是很熟,具体需要哪些步骤我也不知道,所以才需要请教
    2021-08-04 13:33 
  • 用户zM8pH9695594 用户zM8pH9695594(提问者) 像我这个查询需要用到公式这一步骤吗,只需要排序记录,字段选择和合并?
    2021-08-04 13:39 
  • 芥末不辣 芥末不辣 回复 用户zM8pH9695594(提问者) 是的
    2021-08-04 15:32 
  • 用户zM8pH9695594 用户zM8pH9695594(提问者) 可以帮我看看我写的步骤有没有问题吗
    2021-08-05 16:10 
  • 2关注人数
  • 692浏览人数
  • 最后回答于:2021-8-6 17:05
    请选择关闭问题的原因
    确定 取消
    返回顶部