SSIS - 旋转多个记录中的重复值

SSIS - pivoting duplicate values in multiple records

我遇到这样的情况:

ID  TYPE    TIMESTAMP
1   A       22/06/2015 03:55:02
1   A       22/06/2015 03:55:05
1   B       22/06/2015 03:55:10

当然,如果我尝试旋转 SISS 会给出一个错误,提示该 ID 的 TYPE 中存在重复值;所以我认为得到这样的结果会很好:

ID  occurrence  A                       B
1   1           22/06/2015 03:55:02     22/06/2015 03:55:10
1   2           22/06/2015 03:55:05

如果第一次出现的事件用事件(A 和 B)的较早时间戳填充,那也很好,但我认为只要正确排序就可以做到这一点。

这可以做到吗?

您应该能够使用 ROW_NUMBER 创建 "Occurrence" 列并根据类型

旋转数据
SELECT  * 
FROM (  
        SELECT  *,
                ROW_NUMBER() OVER(PARTITION BY [ID], [Type] ORDER BY [TimeStamp]) Occurrence  
        FROM    Test
) t
PIVOT
(       MAX([TimeStamp])
        FOR [Type] IN ([A],[B])
) p

DEMO