こんにちは私はパーセンテージを与えるためにテキストボックスにSwitch式を持っています:
=Switch(
Sum(Fields!TheoCostPriceValue.Value) = 0 AND
Sum(Fields!VarianceCostPriceValue.Value) = 0, 0,
Sum(Fields!TheoCostPriceValue.Value) = 0 Or
Sum(fields!VarianceCostPriceValue.Value) = 0, 1,
Sum(Fields!VarianceCostPriceValue.Value) > 0 AND Sum(Fields!TheoCostPriceValue.Value) <> 0,
ABS(Sum(Fields!VarianceCostPriceValue.Value) / Sum(Fields!TheoCostPriceValue.Value))
)
基本的に、TheoCostPriceValueとVarianceCostPriceValueの両方が0の場合、結果は0になり、どちらかが0の場合は、1になります。両方が0でない場合は、VarianceCostPriceValueが正か負かを確認してから、正しい計算。
私の問題は、TheoCostPriceValueが0でVarianceCostPriceValueが2.35の場合、式が100%ではなく#Errorを返すことです(これは私が期待していることです)。
スイッチに問題はありませんが、100%ではなく#Errorが返されるのはなぜですか?
SQL ReportingService2008を使用しています。
いくつか実験した後、次を追加した後にのみ#Errorが返されることがわかりました。
ABS(Sum(Fields!VarianceCostPriceValue.Value) / Sum(Fields!TheoCostPriceValue.Value)),
その前は正常に動作し、これを0.5のような値に変換すると正しく動作します。