2016-10-24 2 views
0

이전 포스터에 감사드립니다. 초기 질문을 게시 한 이후로 보고서를 조금 수정해야 했으므로 수정 사항입니다.계단식 매개 변수 - 매개 변수를 건너 뛸 수 있습니까?

계단식 매개 변수를 사용하여 보고서를 만들려고합니다. 'LocalAuthority'매개 변수에 'All'옵션을 추가했지만 @ward 매개 변수로 이동할 때 다시 값을 가져 오지 않습니다.
enter image description here

이 매개 변수의 기준을 내 '주요 데이터'저장 프로 시저에서 설정하는 방법입니다

WHERE [county] = @county 

      AND [LocalAuthority] = @LocalAuthority 

        AND CHARINDEX (','+Ward+',', ','[email protected]+',') > 0 

이 당신이 만약 LocalAuthority

SELECT * FROM 

     (

        select distinct 


        LocalAuthority, 
        county    
        from tableA 



        where [county] like 'essex' 


       union all 


       select distinct 

        LocalAuthority, 
        county    
        from tableA 



        where county like 'kent' 


       union all 

        select distinct 

         'All' as LocalAuthority, 
         'CountyWide' as county  

         from tableA 

        )a 

WHERE 

    LocalAuthority = @LocalAuthority 
+1

당신은 동일하게 사용 가능한 값을 사용하는 데이터 집합을'@ LocalAuthority'의 기본 값을 설정할 수 있습니다. 따라서 기본값으로'@ LocalAuthority'에서 값을 선택하지 않으면 데이터 세트에 정의 된 모든 값으로 실행됩니다. –

+0

@alejandrozuleta 다중 값 매개 변수에 대해서만 작동합니까? 'All' 옵션에 대한 질문과 언급에서'@ City'에 추가 된 것들은 이것들이 단일 값임을 제안 할 것입니다. – iamdave

+0

당신이 할 수있는 한 가지는 추가 매개 변수를 만들고 숨김으로 설정하여'@City = "All"'이 쿼리에 아무 것도 반환하지 않으면'@ LocalAuthority' 선택을 반환합니다. –

답변

1

내 저장 프로 시저의 부분이다 단일 값 매개 변수를 사용하는 경우 데이터 집합에 매개 변수를 채우고 해당 데이터 집합을 의 @City 매개 변수에서 확인하고 ret All이 선택되면 Ignore과 같은 값 하나를 반환합니다. 주 데이터 세트에서 문을 사용하여 IGNORE이 반환되면 모든 랩톱을 반환합니다.

아래와 같은 쿼리를 사용하여 @LocalAuthority 값 목록을 지정하고 기본값을 IGNORE으로 설정하면 사용 가능한 경우 채우고 그렇지 않은 경우 사용자 목록에서 사용자를 선택해야합니다. 당신이 당신의 LA들을 무시하는 경우 사용자 상호 작용이 필요하지 않습니다이 방법 :

declare @City nvarchar(50) = 'a'; 

declare @LAs table (LA nvarchar(50)); 
insert into @LAs values 
('Birmingham') 
,('Grenwich') 
,('Exeter') 


select distinct case when @City = 'All' 
        then 'IGNORE' 
        else LA 
        end as LocalAuthorities 
from @LAs 


set @City = 'All'; 

select distinct case when @City = 'All' 
        then 'IGNORE' 
        else LA 
        end as LocalAuthorities 
from @LAs 
관련 문제