SSRS レポートを作成する際には、欠かせないツールであるレポートビルダーですが
式内で0除算を行う際は、ちょっとした "コツ" が必要になります。
☆例:①sikiの値が"商"でない場合は、kekkaに何も表示しない。
②sikiの値が"商"かつ、atai2の値が0の場合は、kekkaに0を表示する。
③sikiの値が"商"かつ、atai2の値が0以外の場合は、kekkaに(atai/atai2)の値を表示する。
■失敗例
-- sikiの値判定
IIF(ReportItems!siki.Value = "商",
-- sikiの値が"商"
IIF(ReportItems!atai2.Value = 0, 0, ReportItems!atai1.Value / ★ReportItems!atai2.Value)
-- sikiの値が"商"以外
, 0)
■成功例
-- sikiの値判定
IIF(ReportItems!siki.Value = "商",
-- sikiの値が"商"
IIF(ReportItems!atai2.Value = 0, 0, ReportItems!atai1.Value / ★IIF(ReportItems!atai2.Value = 0, 1, ReportItems!atai2.Value))
-- sikiの値が"商"以外
, 0)
問題となるのは★の部分です。
一度、IIFで"atai2が0でない場合は"という条件文を入れていますが、
うまく機能してくれず、0除算エラーが発生してしまいます。
原因ははっきりとしていないのですが、ここさえ注意していれば0除算エラーを回避することが出来ます。
2016/05/02