【问题标题】:SSRS Expression with parameter in WHERE clauseWHERE 子句中带有参数的 SSRS 表达式
【发布时间】:2014-09-11 17:32:30
【问题描述】:

在 SSRS 中,我试图计算客户使用某个程序的平均月数。 programID 是整个报告的参数。我正在尝试实现这一点(不是用真正的语法编写的):

=Avg(Fields!length_of_stay.Value, 0))/30.0 WHERE programid = @ProgramID

使用this 问题,我想出了下面的代码,它产生了一个不正确的答案。我在 SSMS 中进行了测试,以获得与 SSRS 结果进行比较的实际值。

=Avg(IIF(Fields!programid.Value = Parameters!ProgramID.Value, Fields!Length_of_Stay.Value, 0))/30.0

使用“/30”是因为该值以天为单位,而我需要几个月。我认为问题在于使用选择的参数值;这是我第一份尝试用参数计算表达式的报告。

【问题讨论】:

    标签: reporting-services parameters ssrs-2008-r2


    【解决方案1】:

    Avg 返回所有非空数值的平均值。 0 不为空,因此它包含在平均值中,从而扭曲了具有不同 PragramId 的每一行的结果。尝试改用Nothing

    =Avg(IIF(Fields!programid.Value = Parameters!ProgramID.Value, Fields!Length_of_Stay.Value, Nothing))/30.0
    

    【讨论】:

      猜你喜欢
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      相关资源
      最近更新 更多