kettle表连接解决单片表和分片表联合查询只能查到相同分片上的数据

需求:

select a.CHANNEL_ID CHANNEL_ID,a.serv_id count_num,sum(b.AMOUNT-b.PRESENT_AMOUNT) amount from AGENT_ADSL_CL a , acct_item_1100 b where a.serv_id = b.prod_inst_id;
其中AGENT_ADSL_CL为单片表,放在29分片上,acct_item_1100为分片表,数据随机放在各个分片上,
进行联合查询时只能查到29分片上的数据(前提,插入acct_item_1100表的数据有部分分在了29分片上)

解决方法:

使用kettle表连接,将数据分别查出来,根据a.serv_id = b.prod_inst_id条件内连接两张表的数据放在中间表上,在对该中间表加条件进行查询,即可查到所有结果。

实例:

在这里插入图片描述
表输入2:sql中所需数据都查出来
在这里插入图片描述
表输入3:sql中所需数据都查出来
在这里插入图片描述
排序记录分别选择a.serv_id = b.prod_inst_id条件中的字段:
在这里插入图片描述
记录集连接:设置连接条件
在这里插入图片描述
字段选择:选出自己需要的字段即可
在这里插入图片描述
表输出:
在这里插入图片描述
至此,所需的联合查询的结果集已经放在中间表(需提前根据所需字段建好)中了,再加条件即可查出全部所需数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值