而不是显示$ 0我显示“ - ”,这是字符串值。 但后来我需要计算“WP的总体百分比”,即'WrittenPremium'/“总书面保费”,如果没有$ amount,它将采用字符串“ - ”,因此我得到了一个错误。 我该如何解决?如果你看到“ - ”,我怎么能在我的表达中说,然后不要分开,只有0。
我正在尝试这样的事情:
=IIF(ReportItems!TotalWrittenPremium.Value<>0, ReportItems!Written_Premium.Value/(ReportItems!TotalWrittenPremium.Value ),0)
但仍然给我一个错误。
答案 0 :(得分:1)
首先,引用ReportItems!Written_Premium.Value
等报告项通常不是一个好习惯。以下是我的建议:
将数据库中的计算字段添加到删除短划线的位置。我们称这个例子为“Calculated_Premium”。表达式为:
= CDec(IIf(Fields!Written_Premium.Value =' - ',0,Fields!Written_Premium.Value))
请参阅表格中的新栏目:
书面保费
=Fields!Calculated_Premium.Value
总书面费用
=Sum(Fields!Calculated_Premium.Value)
总数百分比
=Switch(Sum(Fields!Calculated_Premium.Value) = 0, 0
, True, Fields!Calculated_Premium.Value / Sum(Fields!Calculated_Premium.Value))
答案 1 :(得分:0)
这可能是 IIF 试图解决导致 DIV0 错误的等式的两个部分的问题。
=IIF(ReportItems!TotalWrittenPremium.Value <> 0,
ReportItems!Written_Premium.Value /
IIF(ReportItems!TotalWrittenPremium.Value = 0, 1, ReportItems!TotalWrittenPremium.Value)
, 0)
如果在Visual Studio中运行它,您可能会在错误列表中收到更好的错误消息。
Does the iif function compute both paths in SSRS or is it short-circuited?