SSRS - 在SQL Where子句中使用Case语句

时间:2016-09-20 04:24:25

标签: sql-server reporting-services parameters case ssrs-2012

下面是我的代码,我希望使用case语句选项在ssrs中创建一个下拉列表,但我不知道如何对case语句进行参数化。

select c.EntityID, c.FirstName, c.LastName, (case ap.PlacementVerificationMethod 
when  107 then 'contact center'
when 1 then 'work number/3rd party verification'
 when 101 then 'Placement call'
 when 102  then 'walk in/Self report'
 when 103 then 'Email'
 when 104 then 'Employer Report'
 when 105 then 'In person with participant'
 when 106 then 'In person with employer'
else
'unknown' end) as 'Placement method', wh.JobTitle, ap.PlacementDate, p.ProviderName Employer, u.UserName Placementby  from 
    AssessEmploymentPlacement ap
    join
    users u
    on
 AP.PlacementBy = U.EntityID
    join
    WorkHistory wh
    on
    WH.WorkHistoryID = AP.WorkHistoryID
    join
    client c
    on
    wh.ClientID =c.EntityID
    join
    provider p
    on
    WH.ProviderID = P.EntityID
    join
    assessment a
    on
    AP.AssessmentID = A.AssessmentID
where ap.PlacementDate between @placementbegindate and @placementenddate

sample table for AssessEmployementPlacement

@ChrisLätta sample table for AssessEmploymentPlacement AssessmentID client placementVerificationmethod 1234 sam null 4567 james 101 2234 don 102 5364 manny 107 6595 jon null 6598 woe 104 5496 kie 105

1 个答案:

答案 0 :(得分:0)

如果我理解正确,有几种方法可以实现这一目标:

您可以在SSRS中创建一个参数,其中包含您希望能够按指定过滤的值。如果要使用少量永不更改的值,这将非常有用。然后,可以使用此参数通过使用

过滤where子句中的主查询
where ap.PlacementVerificationMethod = @Parameter

where ap.PlacementVerificationMethod  in (@Parameter)

第二个用于多个选择参数。

您还可以在Tablix中的主报表正文中使用分组。如果按字段分组"放置方法"然后,您可以通过“放置方法”文本框切换子组的可见性(可能在EntityID上分组)。这允许您扩展组以在需要时显示更多详细信息。