如何在SSRS中基于另一个参数填充多值参数

时间:2016-12-15 23:53:10

标签: sql-server reporting-services

我有参数@Coverage和参数@CoverageLosses。他们不是父母和孩子。我希望基于@CoverageLosses填充值@Coverage的默认值。 所以我的主要数据集@Coverage如下所示:

SELECT DISTINCT Coverage
FROM            PlazaInsuranceWPDataSet
ORDER BY Coverage

我的辅助数据集@CoverageLosses如下所示:

SELECT DISTINCT Coverage AS CoverageLosses
FROM            tblLossesPlazaCommercialAuto
WHERE Coverage IN (@Coverage)
ORDER BY CoverageLosses

在报告参数@CoverageLosses中,我检查了Allow Multiple values然后默认情况下 - > Specify values我正在写这个表达式:

=IIF(Parameters!Coverage.Value="Liability","AutoLiabilityCLS" ,nothing)

单值正常。但是,如果我选择@CoverageLosses

,我希望看到@Coverage = Liability的多个值

我该怎么写表达式呢?这样的事情:

=IIF(Parameters!Coverage.Value="Liability","AutoLiabilityCLS" & "AutoLiabilityCLS" & "AutoBodilyInjuryLiability"  ,nothing)

@CoverageLosses用于我报告中的另一个表。它将被隐藏。但@Coverage中的值将映射到值@CoverageLosses。所以当用户选择时,让我们说来自@Coverage的value1,那么@CoverageLosses中的默认值应该是value1,value2,value3等

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以创建一个额外的数据集并将其用作参数的来源:

select CoverageLosses from  (
select 'Liability' Coverage ,'AutoLiabilityCLS' CoverageLosses union 
select 'Liability' Coverage ,'AutoLiabilityCLS' CoverageLosses union 
select 'Liability' Coverage ,'AutoBodilyInjuryLiability' CoverageLosses union
select null Coverage ,null CoverageLosses  ) x
where Coverage = @Coverage