3

我正在练习 SSIS,目前正在研究 Pivot 转换。这就是我正在做的事情。我用以下数据创建了一个数据源(表名:Pivot)。

在此处输入图像描述

使用 SSIS,我创建了一个包,用于将数据透视以具有以下列

PersonID --- 产品 1 --- 产品 2 --- 产品 3。

在这里,我能够将数据透视数据创建为文本文件。但是输出没有按 PersonID 分组。

我当前的输出是

在此处输入图像描述

正如我们所看到的,Transformation 没有根据 SetKey(PersonID : PivotUsage =1) 进行分组

我希望得到的输出是

在此处输入图像描述

数据根据 PersonID 分组的位置。

我在这里想念什么?

编辑:回到我所关注的示例,我重新排序了输入数据,如下所示。

在此处输入图像描述

输入数据是否每次都需要按此顺序/模式排列?我遇到的大多数示例都遵循类似的模式。

4

2 回答 2

4

是的,输入数据需要按您所关注的内容进行排序:

为了有效地透视数据,这意味着在输出数据集中创建尽可能少的记录,输入数据必须在透视列上排序。如果数据未排序,透视转换可能会为集合键中的每个值生成多条记录,集合键是定义集合成员资格的列。例如,如果数据集在 Name 列上进行了透视,但名称未排序,则输出数据集对于每个客户可能有不止一行,因为每次 Name 中的值更改时都会发生透视。

这是从MSDN 上的Pivot Transformation文档中直接引用的。(强调补充。)

于 2013-09-02T20:47:16.430 回答
0

当我第一次阅读这个答案时,我认为排序的列应该是枢轴中 PivotUsage=2 的列。这就是我理解的枢轴列。但是,最终对我有用的是按枢轴使用情况= 1 的列进行排序。如果手动编写 sql,我会按此列进行分组。

于 2014-05-12T14:32:19.913 回答