基于允许SSRS中的多个值的文本参数过滤数据集

时间:2018-03-07 05:16:06

标签: reporting-services varchar

我有一个SSRS参数,允许选择varchar类型的多个值。 如何让where子句显示参数中选定的所有子句。一个例子是参数选择是

1 : Rob
2 : Tom
3 : Rick

如果选择了前两个选项,则应该有2个记录。有点效果:

where Employee.Code + ' : ' + Employee.Name IN ("1 : Rob","2 : Tom")

1 个答案:

答案 0 :(得分:0)

如果参数值同时返回“员工代码”和“员工姓名”,那么我会在过滤之前使用CTE (Common Table Expression)创建连接列。如果您打算在其他地方使用CTE,可能需要在视图中创建CTE。

WITH
employee
AS
(
    SELECT tbl.* FROM (VALUES
      ( 1, 'Rob')
    , ( 2, 'Tom')
    , ( 3, 'Rick')
    ) tbl ([code], [name]) 
)
,
employee_values
AS
(
    SELECT 
          [code]
        , [name]
        , [code_name] = CAST([code] AS VARCHAR) + ' : ' + [name]
    FROM    
        employee    
)
SELECT 
      [code]
    , [name]
    , [code_name]
FROM 
    employee_values
WHERE 
    [code_name] IN(@Employee_Code)