今天一个类似的问题让我陷入困境。映射参数很容易,但是得到总和值可能会导致真正的问题。所以这里是我在 SSIS 2008 中使用的设置。
我发现的关键点:
- 您的输出列取决于您在“连接”选项卡中的值。所以在那里写你的 SELECT 但不要担心 WHERE 子句。
- 您的输入参数映射到“高级”选项卡上
- 必须在“列”选项卡上使用“高级”选项卡上可用于参数的列,但“列”选项卡上的实际映射将被忽略,因此只需将其视为在“高级”选项卡上获取可用于参数的字段的一种方式。
这似乎是一个 hack,但我能够在 WHERE 子句中的两个条件中使用相同的输入列两次,并返回一个基于 SUM 的列和一个基于 COUNT 的列。
常规标签:
缓存模式:无缓存(所以我可以在高级选项卡上使用自定义查询)
连接类型:OLE DB 连接管理器
连接标签:
SQL查询的使用结果:勾选
查询:(有我的求和函数来获取输出,但没有我的输入参数。查询将在“高级”选项卡上被覆盖,但我似乎需要在此处指定我的输出以映射我的求和字段)
SELECT
MIN(Company) CompanyFromSecurityNumber
,COUNT(OLIFundId) FundCountForSecurityNumber
FROM [db].[dbo].[table]
列标签:
从输入中映射您需要用作参数的列,以便它们在您的参数列表中可用。还要检查可用查找列的总和值,以便获得输出。尽管“高级”选项卡会被覆盖,但您的链接方式并不重要
高级标签:
修改选中的 SQL 语句。 (必须在常规选项卡上关闭缓存)
SELECT
MIN(Company) CompanyFromSecurityNumber
,COUNT(OLIFundId) FundCountForSecurityNumber
FROM
[db].[dbo].[table]
WHERE
CUSIP = ?
OR
ISIN = ?
参数按钮:单击并映射参数。唯一可用的是我在“列”选项卡上使用的那些。同样,只要我在这里正确使用它们,我在列选项卡上映射到的内容与它们的使用无关。
就是这样,我能够使用参数进行输入,并在字段名称“CompanyFromSecurityNumber”和“FundCountForSecurityNumber”中获取我的汇总字段(MIN 和 COUNT)