2014-09-15 3 views
0

Я получаю сообщение об ошибке «Выражение небулевого типа, указанное в контексте, где условие ожидается, около ',' " при запуске отчета ssrs 2008 r2. SQL, встроенный в набор данных является:Выражение небулевого типа, указанное в контексте, где ожидается условие, рядом с ',' в ssrs 2008 r2

IF @reportID <> 0 
BEGIN 
    SELECT 'Students report 1' AS selectRptName, 1 AS rptNumValue 
    UNION 
    SELECT 'Students report 2', 2 
    UNION 
    SELECT 'Students report 3', 3 
    UNION 
    SELECT 'Students report 4', 4 
    UNION 
    SELECT 'Students report 5', 5 
    ORDER BY selectRptName 
END 

SQL, прекрасно работает в Managment студии, когда я объявляю @reportID.

sql отлично работает с комментариями 'IF @reportID <> 0'.

@reportID - значение параметра, которое передается в соответствующий набор данных. @reportID может иметь более одного значения.

Таким образом, вы можете показать мне sql и/или сообщить мне, что мне нужно для решения этой проблемы?

+2

что вы подразумеваете под '@ reportID' может иметь более одного значения? вы имеете в виду его параметр с несколькими значениями? Также вы не можете использовать инструкции 'IF..ELSE' внутри вашего построителя запросов SSRS. –

+0

Значение @reportID может иметь 0, 1 или 200 значений. Я думаю о вызове функции, которая разделяет значения параметров. Как мне настроить sql? – user1816979

+0

@ M.Ali SQL имеет условный символ «IF», ​​и он отлично работает в наборах данных SSRS. http://msdn.microsoft.com/en-au/library/ms182717.aspx –

ответ

0

Чтобы проверить значение параметра с несколькими значениями, вам необходимо использовать оператор IN.

IF 0 NOT IN (@reportID) 

Но это звучит для меня, как вы пытаетесь проверить, сколько значений были присвоены параметром многозначного, и вы не можете сделать это прямо в запросе SQL.

В свойствах вашего набора данных перейдите в раздел «Параметры» и добавьте новый параметр, значение которого задается выражением. Затем с помощью этого выражения, чтобы установить этот параметр, чтобы количество элементов в параметре многозначного:

=Parameters!reportID.Count 

Вы можете использовать этот параметр в вашем SQL, чтобы проверить количество значений, присвоенных параметр многозначного.

Для получения дополнительной информации о коллекции параметров в SSRS см этой странице MSDN: Parameters Collection References (Report Builder and SSRS)

+0

изменил код на следующее: IF 0 не в (@reportID) – user1816979