我有一份使用钻取子报告的SSRS报告。 子报表在主报表中使用了3次,并带有几个参数。 在2个子报表中,我使用静态值女性或男性设置了一个参数 SexAtBirth 。 以下是参数的屏幕截图:
对于第3个子报告,我想将参数 SexAtBirth 设置为Not Male or Female
。在SQL中它将是SexAtBirth NOT IN ('Female', 'Male')
参数 SexAtBirth 设置为采用多个值 我不知道如何创建表达式而不包含静态值列表。
更新
我正在尝试为值创建静态列表,错误为SexAtBirth parameter missing a value
我在SQL Server 2008 R2上使用Report Builder 3.0。
这是我尝试过的:
在下拉列表中:
"Female", "Male"
Female, Male
答案 0 :(得分:0)
我做了类似的事情,我使用活动目录来过滤报告(管理员除外)。在此示例中,@ UserID是域用户的名称,来自浏览器会话。
Where t.[Date] Between @DateFrom And @DateTo And
(u.adsGuid = @UserID OR @UserID In (@UserAdmins))
但是,我基本上在SSRS中使用不同的参数来为另一个参数提供输入。这可能不是必需的。为了便于阅读并让我的思路远离逆逻辑,我会尝试类似下面的内容:
WHERE AgeRange = @AgeRange AND
Coalesce(SexAtBirth, '') = Case @SexAtBirth
When 'Male' Then 'Female'
When 'Female' Then 'Male'
Else Coalesce(SexAtBirth, '') End
这应该处理任何NULL并提供反向结果。如果@SexAtBirth不是男性/女性,请给我们休息。