web-dev-qa-db-ja.com

SQL Serverレポートビルダーを使用したSUMIFのような操作の実行

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

しかし、なぜこれが機能するのかはわかりません。そのため、答えを本当に信頼することはできません。

この条件付き合計がどのように動作するようにできますか?

18
Daniel Neal

列 'kWp'のデータ型は10進数であるため、デフォルト値を0.00に変換するか、列をdoubleにキャストする必要があります

 SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!kWp.Value),0.00))
24
praveen

タイプ2のすべてのプロジェクトのkWpsumを取得するには、式は次のようになります。

=IIf(Fields!ProjectTypeID.Value=2,sum(Fields!kWp.Value),0) 

これがあなたのお役に立てば幸いです。

1
Venaikat

私は同様の問題がありました、これは私のために働きました:

=Sum(iif(Fields!date_break.Value = "0001-01-01",Fields!brkr_fee.Value, nothing))

zb

0
Zalek Bloom

条件付き合計を取得するには、この式を試すことができます

=sum(IIf(Fields!balance.Value > 0,(Fields!balance.Value),0))

正の数のみを合計します。それ以外の場合は、合計に0を追加します。逆も可能です。

0
Ghayour Khan