带有WHERE子句中参数的SSRS表达式

时间:2014-09-11 17:32:30

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

在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"使用,因为价值以天为单位,我需要几个月。我认为问题是使用所选的参数值;这是我第一次尝试使用参数计算表达式的报告。

1 个答案:

答案 0 :(得分:1)

Avg返回所有非空数字值的平均值。 0不为null,因此它包含在平均值中,使用不同的PragramId扭曲每行的结果。请尝试使用Nothing

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