2013-06-17 2 views
0

두 개의 데이터 집합이있는 보고서가 있습니다. 첫 번째 데이터 집합은 두 번째 데이터 집합에 매개 변수를 채우는 데 사용됩니다. 첫 번째 데이터 집합에 값이 없으면 매개 변수 X 값 메시지가 누락 될 때까지 모든 것이 올바르게 작동합니다.SSRS에 값이없는 매개 변수를 처리하는 방법

이 문제를 해결할 방법이 있습니까?

답변

3

당신이 Cascading Parameters를 사용하는 가정, 당신은 두 번째 매개 변수의 데이터 집합을 채우려면 다음을 유사한 쿼리를 사용할 수 있습니다

if exists (select 1 from Param2 where paramVal = @Param1) 
begin 

    select paramVal, paramDetail 
    from Param2 
    where paramVal = @Param1 

end 
else 
begin 

    select paramVal = 'None', paramDetail = 'None' 

end 

이 그냥 if...else 구조를 사용하여 해결 방법은 반환되는 행들을 경우가 반환 할 다른 행은 없습니다. 첫 번째 매개 변수 값과 일치하는 것이 없더라도 항상 최소한 하나의 행이 반환됩니다.

나중에 더미 행을 필요에 따라 보고서에서 처리 할 수 ​​있습니다.

위와 같이 특정 문제를 해결할 수있는 해결 방법이지만 도움이 될 것으로 기대됩니다. 그것은 다중 값 매개 변수와 똑같이 작동합니다 - 지금 막 테스트

: 추가 코멘트 후

[email protected]in (@Param1)으로 변경하십시오.

두 번째 DataSet에 일치 항목이 하나 이상있는 경우 해당 행을 반환하고 그렇지 않으면 더미 행만 반환합니다.

VS에서 보고서를 닫거나 다시 열어야했는데 관련이 없었을 수 있습니다.

+0

그건 내가하는 일이 아니야. 사용중인 매개 변수는 해당 데이터 집합의 지정된 필드에 대해 Dataset # 1의 값 목록을 가져옵니다. 두 번째 데이터 집합은이 SQL을 사용하여 값을 얻습니다. field1, field2 선택 from mytable where (field1 in (@ parameter1)) –

+0

동일한 원리입니다. 시도해 봤어? 그것이 작동한다고 가정하면 더미 행 방식이 적합합니까? –

+0

나는 그것을 밖으로 시도하고 알려 드리겠습니다. –

관련 문제