2013-08-12 2 views
0

Моя проблема заключается в том, что я не смог объявить параметры через построитель отчетов.Сервер отчетов - невозможно объявить параметры

Я получаю следующее сообщение об ошибке: «?»

ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the scalar variable "@param".

Так что я гугле его и обнаружил, что она может быть легко решена путем ввода символа вместо «@parameter», и он решил проблему на некоторое время.

Но теперь у меня есть еще одна проблема. У меня есть select как: "?"

select * from table t where t.date = ? or t.date2 = ? or t.date3 = ? 

Где все три «2013-авг-01», но каждый «?» создает новый параметр в разделе параметров Report Builder.

Как я могу использовать один параметр для всех трех случаев?

ответ

0

Попробуйте

select * from table t where ? IN (t.date, t.date2, t.date3) 

Другой способ решения просто удалить две переменные, созданные SSRS и обновить ваш запрос

select * from table t where t.date = @param1 or t.date2 = @param1 or t.date3 = @param1 

Другой способ написать запрос

select * from table t where t.date = ? or t.date2 = ? or t.date3 = ? 

Пусть он создает 3 переменные. Затем перейдите в Dataset, в разделе свойств параметров gotoet. Там обновите значение параметра 2 & 3 до параметра 1. Затем перейдите в раздел параметров и удалите автоматически сгенерированный параметр Parameter2 & Parameter3.

+0

спасибо за ответ, я не могу использовать первый пример, потому что поля, которые я пытаюсь проверить, не находятся под одной и той же «где» (суб выбора, объединения и т.д.) и, как для второго Я не могу использовать символ «@». по неизвестным причинам он не распознает его как идентификатор параметра сборщика отчетов, а как переменную запроса, и из-за этого я получаю сообщение об ошибке, указывающее, что сначала я должен объявить переменную перед ее использованием. –

+0

Я добавил третий метод. Проверьте это. –

Смежные вопросы