Mik*_*ebb 23 conditional sum reporting-services
我有一个SSRS报告,显示几页行.每行中都有一个"TYPE"字段.在该TYPE字段中,值为"M"或值为"P".在报告的最后,我想总结"P"类型的所有价格值.我尝试了这个,但它产生了一个#Error:
=Sum(iif(Fields!TYPE.Value = "P",Fields!EXT_QTY.Value * Fields!PRICE.Value ,0))
Run Code Online (Sandbox Code Playgroud)
这总结了所有行
=iif(Fields!PART_TYPE.Value = "P" , Sum(Fields!EXT_QTY.Value * Fields!PRICE.Value ), 0 )
Run Code Online (Sandbox Code Playgroud)
我确信这是可行的.有任何想法吗?谢谢
Mik*_*ebb 34
找到答案....
=SUM(IIF(Fields!PART_TYPE.Value ="P",CDbl(Fields!EXT_QTY.Value * Fields!PRICE.Value), CDbl(0.0)))
Run Code Online (Sandbox Code Playgroud)
Chr*_*tta 15
SUM由于类型比较而失败 - 您不能对不同类型的值求和,即表达式(可能是a Double)为0,an Integer.MikeTWebb的答案进行显式类型转换以解决此错误.这对于这个特定的例子来说很好,是一个Sum,但是如果你想要Sum / CountType 的平均值(是),这不会产生准确的结果.这是因为0是一个值,并且将被包含在当您确实希望从计算中排除这些值时的平均计算.
另一种选择是使用Nothing而不是0:
=Sum(IIF(Fields!TYPE.Value = "P", Fields!EXT_QTY.Value * Fields!PRICE.Value, Nothing))
Run Code Online (Sandbox Code Playgroud)
这解决了类型比较错误,无需显式类型转换,并且当您使用聚合时,这是一个更好的解决方案,其中值是否存在对结果有意义,例如Average.
| 归档时间: |
|
| 查看次数: |
33970 次 |
| 最近记录: |