🔴大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂
场景:
我有两个库,假设就是A库和B库吧。
现在我需要将B库中,疾病表里面的所有疾病查询出来,然后去A库中的诊断记录里面获取所有包含这些疾病的诊断记录;然后再将满足条件的诊断记录输出到B库中的患者表中。
我们下面来看看kettle里面是如何实现的。
按照条件查询B库中的疾病
首先,我们需要拉一个【表输入】的操作。
写一个sql,实现查询所有疾病名称,sql如下:
SELECT ill_text FROM sg_illness_dict
按照条件从A库中查询包含这些疾病的诊断记录
A库是另一个远程库,诊断信息都在这里,所以我们需要换一个连接,从A库中获取数据。
现在我们在拉进来一个【表输入】,写一下需要获取信息的sql语句。
select
*
from zdb
like ?
WHERE year(z.date)='2021'
or year(z.date)='2022'
or year(z.date)='2023'
or year(z.date)='2024';
这个sql语句就是查询2021-2024年所有包含疾病的诊断记录。
注意下面的:从步骤插入数据,这个步骤选择的就是上一个表输入的步骤,然后还需要把下面的 执行每一行给勾选上,这样就实现了循环遍历疾病,然后将拿着疾病名称到当前的表输入中替换掉sql语句中的问号,来执行操作。
表输出至目标表
最后一步就是输出到目标表里面啦。
直接拉一个需要输出的目标表,设置一下字段映射即可。
然后我们启动运行等待即可。