【问题标题】:Math operators parameters数学运算符参数
【发布时间】:2013-04-24 20:47:34
【问题描述】:

我想知道我们是否可以在报表的参数中使用数学运算符。

我有一个名为“EMP_Attendance”的参数。

我想让参数显示和运行带有值的报告

参数:

EMP_Attendance

           = 100.00%
           <100.00% and >=90.00%
           <90.00% and >=80.00%
           <80.00% 

报告应该根据这个值运行

【问题讨论】:

  • 您能详细说明一下吗?你的问题有点难以理解。
  • 我想根据他们当年的出勤率在报告中显示员工列表。出勤率是根据查询本身计算的。所以我将不得不显示例如: =90.00% :它必须向我显示出勤率低于 100.% 但高于 90.00% 的所有员工
  • 您是否有用户要选择的参数,以上三个之一,或者您的报告是否需要按字段分组?
  • 用户应该能够选择 4 个选项之一

标签: ssrs-2008 reporting-services ssrs-grouping


【解决方案1】:

这在本机上是不可能的,但有一些解决方法。

  1. 使用上面的四个选项创建一个可见参数。
  2. 创建两个由两个虚拟 sql 填充的内部参数,一个 lower 和一个 upper
  3. 根据用户的选择使查询产生适当的上限和下限,例如如果选择 100% lower = 100 和 upper = 101。
  4. 按这两个限制过滤数据集。

【讨论】:

  • 您能否详细说明...以及它将如何影响主要查询
  • 它将主查询过滤为用户为您的原始参数选择的内容。
  • 另一种选择是将此过滤器放入查询本身,类似于史蒂文斯的回答
【解决方案2】:

首先,您需要为参数添加 4 个可用值,标签为“100%”等,值为 1、2、3、4。

那么您有 2 个过滤选项。

  1. 您可以在查询中添加如下内容:

    SELECT case when EMP_Attendance = 100 then 1 
    when EMP_Attendance <100 and EMP_Attendance >=90.00% then 2
    when EMP_Attendance <90 and EMP_Attendance >=80 then 3
    else 4 end as AttendanceGroup
    WHERE AttendanceGroup = @AttendanceParameter
    
  2. 另一个选项是保持查询不变,以便将所有数据返回到报告中。右键单击表并转到其属性。转到过滤器。在此处添加过滤器以将您的参数与 EMP_Attendance 值进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2018-09-19
    • 2019-07-10
    • 1970-01-01
    • 2017-08-10
    相关资源
    最近更新 更多