Я пытаюсь создать параметр, который будет принимать несколько значений для отчета. Отчет сбегает процедуру и работает, если выбрать только одну операцию сбора, но когда я пытаюсь выбрать несколько, я получаю:SSRS Параметр, не принимающий несколько значений
An error has occurred during report processing.
Query execution failed for dataset 'proc_Incentives'
Error converting data type nvarchar to int
В моей процедуре, я объявил @CO_ID Int в качестве переменной.
В предложении WHERE я установил CO.CodeID в (@CO_ID).
Кроме того, CO.CodeID хранится как INT в базе данных.
В своем докладе SSRS, я создал новый набор данных с именем «prmCollectionOp», в котором я написал простой запрос:
Select CodeID, Description from IDViewCollectionOp Order by Description;
Тогда я пошел создал новый параметр с именем «CO_ID» и сделал тип данных Integer и отметьте «Разрешить множественные значения».
В разделе Доступные значения, я выбрал Получить значения из запроса, выбрать prmCollectionOp и поместить CodeID в поле значений и Описание в поле метки.
Для значений по умолчанию я также выбрал Получить значения из запроса и выбрал набор данных prmCollectionOp со значением поля CodeID.
Это все работает с одной единственной операцией по сборке, но не с несколькими.
Любые предложения по поводу того, что я, возможно, пропустил, чтобы разрешить выбор нескольких значений в параметре?
Спасибо,
Спасибо Bactos, я нашел первый через Google и попробовал, но не везло, но я вернусь и попробовать еще раз. – MISNole
Я добавил выражение в набор данных процедуры для переменной, которая должна принимать несколько значений: = Join (Parameters! CO_ID.Value, ","), но это не работает ... Ugh. – MISNole
Вы пытались использовать функцию разделения? Вы можете использовать это с рекурсивным CTE: http://www.sqlservercentral.com/blogs/querying-microsoft-sql-server/2013/09/19/how-to-split-a-string-by-delimited-char -in-sql-server/и http://www.codeproject.com/Tips/666620/T-SQL-Most-Practical-Split-Function. Поскольку, когда вы используете хранимую процедуру и передаете параметр в эту процедуру, это передается как 1 значение (независимо от того, сколько значений вы считаете своим), вы должны разделить их. – Bactos