【问题标题】:SSRS order by multiple criteria dropdownSSRS 按多个条件下拉排序
【发布时间】:2013-04-01 20:14:09
【问题描述】:

对不起,我是个菜鸟,但我相信这是我需要帮助的正确地方。

我刚开始编写 SSRS 报告 (2005),我想了解如何添加一个过滤器下拉列表,其中包含多个执行排序的选项。我已经将一个列表导入到我的表中,并且具有这种排序所需的适当字段。

IE。我想要一个名为“排序依据”的下拉框,其中包含可用选项:

客户名称

邮政编码,SIC

SIC,城市

其中的每一个都按照查看报告时选择的功能执行特定的排序。

我玩过并且能够设置数据集和添加过滤器,但这并不是最佳选择,因为(例如)您必须知道确切的 ZipCode 和 SIC 匹配才能返回任何结果。

必须有一种简单的方法来根据下拉列表的选择返回这个带有多个 order by 条件的 select 语句,但如果有的话我找不到它。

任何帮助将不胜感激!

【问题讨论】:

    标签: sql visual-studio-2005 reporting-services


    【解决方案1】:

    我可以想到几个选项。在这两种情况下,我都假设了一个包含以下值的参数 SortOrder:

    • 客户名称
    • 邮政编码,SIC
    • SIC,城市

    根据参数对表格应用排序表达式

    我已经将排序表达式应用于表格:

    第一类:

    =Switch(Parameters!SortOrder.Value = "CustomerName", Fields!CustomerName.Value
        , Parameters!SortOrder.Value = "ZipCode, SIC", Fields!ZIP.Value
        , Parameters!SortOrder.Value = "SIC, City", Fields!SIC.Value)
    

    二次排序:

    =Switch(Parameters!SortOrder.Value = "CustomerName", Fields!CustomerName.Value
        , Parameters!SortOrder.Value = "ZipCode, SIC", Fields!SIC.Value
        , Parameters!SortOrder.Value = "SIC, City", Fields!City.Value)
    

    在查询中应用排序

    您可以根据参数将order by 添加到您的数据集查询中以执行相同的操作:

    ...
    order by case @SortOrder when 'CustomerName' then CustomerName
      when 'ZipCode, SIC' then ZIP
      when 'SIC, City' then SIC
      end
      , case @SortOrder when 'CustomerName' then CustomerName
      when 'ZipCode, SIC' then SIC
      when 'SIC, City' then City
      end
    

    在这两种情况下,您都会得到基于参数的排序:

    【讨论】:

      猜你喜欢
      • 2013-09-13
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      相关资源
      最近更新 更多