我需要在同一个SSIS包中,将SQL查询的多行结果中的1列映射到不同的变量上。
例如,我的查询的输出是。
Category, Count
A, 16
B, 23
C, 41
D, 72
E, 32
我想将Count的值分配给我的包中的5个不同的变量。
VariableA = 16
VariableB = 23
and so on.
我遇到了多个结果集到一个对象,然后使用ForEach循环容器从该对象中读取。然而,这在同一个变量中存储了不同的结果.我想在数据流任务中使用这些变量作为数字进行多行抽样转换,因此我需要它们作为单独的变量.有没有办法解决这个问题,并在SSIS中得到上述结果?
就像我上面评论的那样。你可以将你的查询结果进行pivot...
;with YourQuery as
(
select *
from (values('A',16),('B',23),('C',41),('D',72),('E',32)) as a(Cat,Ct)
)
select A=Max(case when cat='A' then Ct else 0 end)
,B=Max(case when cat='B' then Ct else 0 end)
,C=Max(case when cat='C' then Ct else 0 end)
,D=Max(case when cat='D' then Ct else 0 end)
,E=Max(case when cat='E' then Ct else 0 end)
from YourQuery
查询结果..:
A B C D E
16 23 41 72 32