感谢您之前的海报,自从我发布初步问题以来,我不得不调整报告,所以这是一个编辑。
我正在尝试使用级联参数创建报告。我在'LocalAuthority'参数中添加了'All'选项,但在转到@ward参数时没有返回任何值。
这是我的“主数据”存储过程
中设置参数标准的方式WHERE [county] = @county
AND [LocalAuthority] = @LocalAuthority
AND CHARINDEX (','+Ward+',', ','+@Ward+',') > 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
答案 0 :(得分:1)
如果您使用单值参数,我建议使用数据集填充参数,并让该数据集只检查All
参数中的@City
并返回一个值,例如{{1如果选择了Ignore
。在主数据集中,使用All
语句返回IGNORE
时返回所有LA。
您可以使用与下面的查询类似的内容来指定您的case
值列表,并将默认值设置为@LocalAuthority
,如果可用则填充该IGNORE
,如果没有,则需要用户从LA列表中进行选择。这样,如果您忽略了您的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