ssrs在一行中查找多个非空列的计数

时间:2013-04-11 10:44:03

标签: reporting-services ssrs-2008

我在SSRS中需要一些帮助才能找到YTD列的YTD(%)..

我有SSRS 2008 tablix区域,其中列为州,类别,1月,2月,3月,...,12月,年初至今。这些列具有总和和百分比值,具体取决于行。当列为%时,我需要帮助来计算YTD。

示例:

国家类别1月2月3月...... YTD

MN A 200 200 0 ...... 400

MN B 21 12 0 ........ 33

MN A%12.5 12.5 0 ........ ??

对于上面的A,B,YTD只是添加报告项目1月+ 2月+ 3月+ ....如图所示将是400和33(假设只有1月和2月的实际值> 0)。

对于A%以上的行(??),由于这是一个百分比列,我的YTD应该是非空/非零列的平均值...在这种情况下(12.5 + 12.5)/ 2 = 12.5但是我无法找出每个类别(1月,2月等)的非空列的计数...我已经尝试过avg,count,sum等,但我没有得到正确的值。如果我能找出denomintor(将是1月,2月,...,12月的非空列的计数),那么问题就会解决,我可以这样做:

(Jan + Feb + March + ... + Dec)/ Count(Jan,Feb,Mar,..,Dec)

Count应该只返回非空/非零列的计数,这样我才能进行平均计算..请帮助。

1 个答案:

答案 0 :(得分:0)

我不确定你想要什么。

如果你想要的只是找出最后一列中一行的平均值,你可以这样做:

像这样制作你想要平均的列的表达式:

Sum(Fields!Jan.Value + Fields!Feb.Value...+Fields!Dec.Value)/
 Sum(IIF(IsNothing(Fields!Jan.Value),0,1) +
     IIF(IsNothing(Fields!Feb.Value),0,1) +
     .
     .
     IIF(IsNothing(Fields!Dec.Value),0,1) 
  )

所以,在分母中,你这样做:

Sum(1+0+1+1+0...+0)

即。如果Field不为null,则返回1,否则返回0