问题是:我有三张桌子。第一个表基本上是一个帐号列表。第二个表包含公司内部的部门列表,最后一个表包含枚举的建筑地点(工厂)列表。SSIS中的数据源被设置(OLEDB),每个数据源都从各自的表(工厂、部门和附件,所有这些都是varchar类型)中提取列中的每条记录。我已经在SSIS中创建了变量(对象类型),并将结果集分配给了三个表中的每一个。行变量也已被设置和分配。
我的目标是:对于每个帐号,我需要创建一个独特的‘代码’,由‘工厂’+ 'dept‘+ 'acctnum’组成,并将这个连接结果插入到一个单独的表中。每个帐号都需要以这种方式与每一家工厂以及每个部门相结合。
因此,插入的示例记录看起来可能是“081350015”(前2位数字是植物的,接下来的2位数字是部门的,其余的5位数字是acctnum)。下一个插入的记录将使用相同的帐号,并结合从dept表中选择的下一个dept记录和从所述植物表中选择的下一个植物记录的结果。基本上,每个帐号都能得到部门/工厂的每一个组合。
示例:
直到AcctNum/Dept组合('22‘+ '50001')与从“工厂”表返回的每个植物记录组合后,才会有此流。
现在,我们仍然使用从AcctNum表返回的第一条记录(“50001”),使用从Dept表返回的下一条记录( '62‘),并将返回到从工厂表返回的第一个记录( '01’),从而将‘01’+‘62’+ '50001‘插入到分隔表中。因此,对于返回的每个Dept记录,它将与每个返回的植物记录结合在一起,给出唯一的AcctNumber。
我知道这可能会让人困惑(也许不会)。如果需要进一步解释的话请告诉我。
发布于 2016-07-21 16:56:30
我算出来了。最后,通过每次执行2次并在临时表中存储来自每个表的结果,交叉连接这3个表,然后在它们共有的列上交叉连接这些表。谢谢你的评论。
https://stackoverflow.com/questions/38503732
复制相似问题