如何将SSIS执行SQL任务中的多行结果映射到不同的变量?

问题描述 投票:0回答:1

我需要在同一个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中得到上述结果?

variables ssis foreach-loop-container execute-sql-task
1个回答
2
投票

就像我上面评论的那样。你可以将你的查询结果进行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
© www.soinside.com 2019 - 2024. All rights reserved.