【问题标题】:Report Builder 3.0 How to filter on different columnsReport Builder 3.0 如何过滤不同的列
【发布时间】:2016-06-13 18:56:36
【问题描述】:

我的报表 (Report Builder 3.0) 中有一个名为 REPORT_FILTER 的参数。此参数有 4 个可用值。标签是 (1) 家庭组、(2) 家庭分支、(3) 其他组和 (4) 其他分支。对应的值为 1、2、3 和 4。

用于运行此报告的 SQL 将“1”添加到 Home Group 的“Filter1”列,并将“2”添加到 Other Group 的“Filter1”列。

用于运行此报告的 SQL 将“1”添加到主分支的“Filter2”列,并将“2”添加到其他分支的“Filter2”列。

当 SQL 运行时,我在“过滤器 1”和“过滤器 2”列中得到 1 或 2。这些数据正是我所期望的。

我想做的是在报告中添加一个过滤器,以便用户只获得他们想要的记录。我正在努力解决的是过滤器必须使用 2 列,我不知道该怎么做。

例如,如果用户选择 Home Group (value = 1),则报告应该只返回那些在 Filter1 列中有 1 的记录

如果用户选择“其他分支”(值 = 4),则报告应该只返回那些在 Filter2 列中有 2 的记录

这个报告已经需要一段时间才能运行几分钟,所以(我认为)我更愿意在 Report Builder 中过滤结果,而不是使用 SQL。如果我可以用 SQL 做到这一点,那将是可以接受的。我尝试编写 SQL 来执行此操作,但也未能成功。

任何建议将不胜感激。感谢您的帮助。

【问题讨论】:

    标签: sql filter reportbuilder3.0


    【解决方案1】:

    在 SQL 中很容易做到,只需添加这个 WHERE 条件:

    WHERE 
    CASE 
    WHEN
       @REPORT_FILTER = 4 and Filter2 = 2 then 1
    WHEN
       @REPORT_FILTER = 3 and Filter2 = 1 then 1
    WHEN
       @REPORT_FILTER = 2 and Filter1 = 2 then 1
    WHEN
       @REPORT_FILTER = 1 and Filter1 = 1 then 1
    ELSE 0
    END = 1
    

    同样在 SSRS 中,只需使用 Filters 表达式

    (Parameters!REPORT_FILTER.Value = 4 And Fields!Filter2.Value = 2)
    OR
    (Parameters!REPORT_FILTER.Value = 3 And Fields!Filter2.Value = 1)
    OR
    (Parameters!REPORT_FILTER.Value = 2 And Fields!Filter1.Value = 2)
    OR
    (Parameters!REPORT_FILTER.Value = 1 And Fields!Filter1.Value = 1)
    

    将表达式类型设置为布尔值,并将比较值设置为真。

    【讨论】:

    • .....感谢您的建议。今天下午我要试试。我非常感谢详细信息
    • @Kyle_Hale.......我正在添加另一个名为“All”的过滤器。如何将其添加到 SSRS 示例中。该值为 5 并且应包括所有记录。我试过“OR(参数!REPORT_FILTER.Value = 5 And Fields!Filter1.Value = 1 And Fields!Filter1.Value = 2)。感谢您的帮助
    • 如果你想要 5 只需要添加 (OR Parameter!Report_FILTER.Value = 5),不需要其他过滤器。
    • @Kyle_Hale..........谢谢............我已经通过 Tablix 属性添加了过滤器。当我运行报告时,它会返回所有记录。我正在尝试使用过滤器来呈现报告结果的不同视图/子集。如果我更改过滤器参数并再次点击“查看报告”按钮,它会显示我正在寻找的子集吗?我的用户会想要运行报告,然后以不同的方式查看结果。感谢您的帮助
    • 是吗?如果他们选择 REPORT_FILTER 值为 1,这将只显示 Filter1 等于 1 的行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多