我正在练习SSIS,目前正致力于Pivot转型。这就是我正在做的事情。 我使用以下数据创建了一个数据源(表名:Pivot)。
使用SSIS,我创建了一个用于透视数据的包,其中包含以下列
PersonID --- Product1 --- Product2 --- Product3。
这是我在哪里,我能够创建到文本文件的数据透视数据。但是输出没有按PersonID分组。
我的当前输出是
正如我们所看到的,转换不会基于此进行分组 SetKey(PersonID:PivotUsage = 1)
我希望获得的输出是
根据PersonID对数据进行分组。
我在这里缺少什么?
编辑: 回到我关注的示例,我按如下方式重新排序输入数据。
每次输入数据是否需要按此顺序/模式进行?我遇到的大多数例子都遵循类似的模式。
答案 0 :(得分:4)
是的,输入数据需要按照您正在转动的任何内容进行排序:
有效地转移数据,这意味着在数据中创建尽可能少的记录 尽可能输出数据集,输入数据必须在数据透视表上排序 柱。如果未对数据进行排序,则可能会进行Pivot转换 为set key中的每个值生成多个记录,即 定义集合成员资格的列。例如,如果数据集是 在名称列上旋转但名称未排序,即输出 数据集可以为每个客户提供多行,因为a 每次名称中的值更改时都会发生。
这是MSDN上Pivot Transformation文档的直接引用。 (重点补充。)
答案 1 :(得分:0)
当我第一次阅读这个答案时,我认为有序列应该是枢轴中PivotUsage = 2的列。这就是我所理解的枢轴列。但是,最终对我有用的是按轴使用数= 1的列进行排序。如果手工编写sql,这是我要分组的专栏。