2014-09-15 5 views
0

에서 '근처'에 조건이 예상되는 컨텍스트에서 지정된 부울이 아닌 표현식 오류 메시지 "조건이 지정된 컨텍스트에서 지정된 부울 유형의 표현식이 표시됩니다. ssrs 2008 r2 보고서를 실행할 때 ',' " 근처에 있어야합니다. 데이터 세트에 포함 된 SQL은 다음과 같습니다 나는 @reportID를 선언 할 때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를 스튜디오에서 잘 실행됩니다.

SQL은 'IF @reportID <> 0'으로 주석 처리하여 정상적으로 실행됩니다.

@reportID은 적용 가능한 데이터 집합에 전달되는 매개 변수 값입니다. @reportID은 둘 이상의 값을 가질 수 있습니다.

따라서 SQL을 표시하고/또는 내게 문제를 해결하기 위해해야 ​​할 일을 말해 줄 수 있습니까?

+2

당신이 무엇을 의미합니까'@ reportID' 하나 개의 값 이상을 가질 수 있습니다 SSRS의 Parameters 컬렉션에 대한 자세한 내용은

이 MSDN 페이지를 참조하십시오? 다중 값 매개 변수를 의미합니까? 또한 SSRS 쿼리 작성기에서는 IF..ELSE 문을 사용할 수 없습니다. –

+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에서이 매개 변수를 사용할 수 있습니다. Parameters Collection References (Report Builder and SSRS)

+0

코드를 다음과 같이 변경했습니다. IF 0 not in (@reportID) – user1816979