Kettle遍历记录集循环提取他表数据

发布时间 2023-09-25 10:13:07作者: 网络来者

假设有员工表

with a as (

select 1 id , '张三' name,'' 性别,'销售1' 部门 from dual union all

select 2 id , '李四' name,'' 性别,'销售2' 部门 from dual union all

select 3 id , '王五' name,'' 性别,'销售1' 部门 from dual

)

select * from a

 

假设有员工销售明细表

with b as (

select 1 userid , 'A' 产品代码 ,35 销售额 from dual union all

select 1 userid , 'B' 产品代码 ,31 销售额 from dual union all

select 2 userid , 'A' 产品代码 ,5 销售额 from dual union all

select 2 userid , 'B' 产品代码 ,9 销售额 from dual union all

select 2 userid , 'C' 产品代码 ,22 销售额 from dual

)

select * from b --where userid= 1

 

现在要用kettle实现如下效果

ID

NAME

性别

部门

USERID

产品代码

销售额

1

张三

销售1

1

A

35

1

张三

销售1

1

B

31

2

李四

销售2

2

A

5

2

李四

销售2

2

B

9

2

李四

销售2

2

C

22

 

以上效果是通过 sql语句生成的

with a as (

select 1 id , '张三' name,'' 性别,'销售1' 部门 from dual union all

select 2 id , '李四' name,'' 性别,'销售2' 部门 from dual union all

select 3 id , '王五' name,'' 性别,'销售1' 部门 from dual

),b as (

select 1 userid , 'A' 产品代码 ,35 销售额 from dual union all

select 1 userid , 'B' 产品代码 ,31 销售额 from dual union all

select 2 userid , 'A' 产品代码 ,5 销售额 from dual union all

select 2 userid , 'B' 产品代码 ,9 销售额 from dual union all

select 2 userid , 'C' 产品代码 ,22 销售额 from dual

)

select * from a, b where userid= id

 

kettle实现过程如下: