поиск по ssis с суммой - не может отобразить параметры - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть SQL-запрос, который выглядит следующим образом:

SELECT SUM(A) AS expr1 FROM TREES WHERE (b = ?) AND (c = ?) and (d = ?)

Как мне сопоставить параметры? Поскольку это сумма, я не могу выбрать несколько строк.

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Подобная проблема вывела меня сегодня вверх по стене.Отображение параметров легко, но тогда получение суммированного значения может вызвать реальные проблемы.Итак, вот настройки, которые я использовал в SSIS 2008. Ключевые моменты, которые я нашел:

  1. Ваши выходные столбцы зависят от значений, которые вы используете на вкладке Соединение.Поэтому напишите свой SELECT, но не беспокойтесь о предложении WHERE.
  2. Ваши входные параметры отображаются на вкладке "Дополнительно"
  3. Должны использоваться столбцы, доступные для параметров на вкладке "Дополнительно".на вкладке «Столбцы», но фактическое сопоставление на вкладке «Столбцы» будет игнорироваться, поэтому просто рассмотрите возможность получения полей, доступных для параметров, на вкладке «Дополнительно».

Это похоже на взлом, но я смогиспользовать один и тот же входной столбец дважды для двух условий в моем предложении 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 = ?

Кнопка «Параметры»: нажмите и отобразите параметры.Были доступны только те, которые я использовал на вкладке «Столбцы».Опять же, то, что я отобразил на вкладке столбцов, не имело ничего общего с их использованием, пока я использовал их здесь правильно.


Так что это было все, и я смог использовать параметры для ввода иполучить мои обобщенные поля (MIN и COUNT) в полях с именами "CompanyFromSecurityNumber" и "FundCountForSecurityNumber"

1 голос
/ 07 сентября 2015

Хотя ответ «Ненависть к Огайо» потрясающий и полный, для меня было гораздо проще решить проблему. Только первый шаг, смена источника на SQL на вкладке соединения, сделала свое дело.

Что-то вроде:

SELECT 
[ID]
,[Date]
,SUM([CountStuff]) AS [CountStuff]
FROM [dbo].[Table]
GROUP BY [ID], [Date]

Затем сопоставьте столбцы и сопоставьте столбцы с поиском. Готово.

...