SQL Serverレポートビルダー3.0で条件付き合計を生成しようとしています。
私の表現は次のようになります:
=Sum(Iif(Fields!ProjectTypeID.Value=2,Fields!kWp.Value,0))
この式がタイプ2のすべてのプロジェクトのkWpの合計を生成することを期待しました。
残念ながらそうではありません。そして、私はその理由を理解できないようです。 kWp列にゼロ以外の値があり、列にnullが含まれていないことを知っていても、結果は0を返します。
同僚は、
Fields!kWp.Value
と
1 * Fields!kWp.Value
しかし、なぜこれが機能するのかはわかりません。そのため、答えを本当に信頼することはできません。
この条件付き合計がどのように動作するようにできますか?
列 'kWp'のデータ型は10進数であるため、デフォルト値を0.00に変換するか、列をdoubleにキャストする必要があります
SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!kWp.Value),0.00))
タイプ2のすべてのプロジェクトのkWpのsum
を取得するには、式は次のようになります。
=IIf(Fields!ProjectTypeID.Value=2,sum(Fields!kWp.Value),0)
これがあなたのお役に立てば幸いです。
私は同様の問題がありました、これは私のために働きました:
=Sum(iif(Fields!date_break.Value = "0001-01-01",Fields!brkr_fee.Value, nothing))
zb
条件付き合計を取得するには、この式を試すことができます
=sum(IIf(Fields!balance.Value > 0,(Fields!balance.Value),0))
正の数のみを合計します。それ以外の場合は、合計に0を追加します。逆も可能です。