【问题标题】:SQL Reporting Services Report ParametersSQL Reporting Services 报告参数
【发布时间】:2017-03-15 20:06:52
【问题描述】:

我正在重新构建一个应用程序,该应用程序允许用户基于一个小查询生成报告。 SSRS 报告参数是否支持选择比较谓词?我的用户需要能够搜索给定属性等于、不等于、大于等的位置。

【问题讨论】:

    标签: sql-server reporting-services parameters


    【解决方案1】:

    不完全是,但我认为你可以复制它,尽管它可能很冗长。首先,您将有一个指定比较运算符的参数(显式列表或对可用选项的查询)。然后,您将不得不在查询中使用一组丑陋的 OR 检查:

    SELECT
        *
    FROM
        [Table]
    WHERE
        (@Operator IS NULL) /* All rows if no operator, or some default condition */
        OR
        (@Operator = '=' AND [Field] = [Value])
        OR
        (@Operator = '<' AND [Field] < [Value])
        OR
        (@Operator = '>' AND [Field] > [Value])
    

    【讨论】:

      【解决方案2】:

      不是直接的,但你当然可以适应。

      首先,添加一个带有比较选项的参数。我们就叫它@Operator吧。

      接下来,将条件添加到您的查询 WHERE 子句以处理这些情况。比如:

      WHERE ((@Operator = '=' and Col1 = @Parameter) OR (@Operator = '!=' and Col1 != @Parameter) ...)
      

      【讨论】:

        【解决方案3】:

        另一种选择是动态 SQL,实际上直接使用 operator 参数来构建 SQL 语句。

        DECLARE @SQL nvarchar(max)
        SET @SQL = 'SELECT * FROM [Table] WHERE [Attribute] ' + @operator + @value
        EXEC (@SQL)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-04
          • 1970-01-01
          • 1970-01-01
          • 2011-02-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多