0

SSRS で SUMS を減算する VB 式を作成する方法を教えてください。アカウントと対応する金額/金額の値を持つデータセットがあります。指定された範囲内のアカウントの 1 つのグループから金額/金額の値を合計し、別の範囲の金額/金額の合計から減算する式を作成するのに助けが必要です。具体的には:

(Sum(amt) where acct between 40000 and 49999) -
(Sum(amt) where (acct between 50000 and 59999) or (acct between 66000 and 69999)) -
(Sum(amt) where acct between 76000 and 79825) -
(Sum(amt) where acct between 89000 and 90399)

この SQL ロジックを VB 式に変換して、SSRS のテキスト ボックスに使用するのに本当に助けが必要です。どんなアドバイスも非常に役に立ちます!ありがとう!

4

1 に答える 1

1

テキストボックスはデータセットの最初の値しかキャプチャできないため、テキストボックスの式ビルダーに移動すると、データセットから利用可能なフィールドがないことがわかります。ただし、データセット フィールドの集計関数は使用できます。

そのため、データセットに計算フィールドを作成し、適切な符号を使用して金額値を追加して、この計算フィールドのすべての値の合計が目的のソリューションを表すようにすることができます。

たとえば、新しい計算フィールドをデータセットに追加します。フィールド ソースに、次のような適切な式を追加します。

=IIF(Fields!acct.Value>=40000 AND Fields!acct.Value<=49999, CInt(Fields!amt.Value),
   IIF(   (Fields!acct.Value>=50000 AND Fields!acct.Value<=59999)  OR
          (Fields!acct.Value>=66000 AND Fields!acct.Value<=69999)  OR
          (Fields!acct.Value>=76000 AND Fields!acct.Value<=79825)  OR
          (Fields!acct.Value>=89000 AND Fields!acct.Value<=90399), 
                 CInt(0 - Fields!amt.Value), CInt(0)
      )
    )

これにより、40000 から 49999 の間の値がそのまま保持されます。減算する必要のあるすべての値を負の値にします。そして、あなたが0と見なしたくない他のすべてのもの。

したがって、あなたが呼び出すとき

Sum(Fields!calcfield.Value, "your dataset name")

テキストボックスから、40000 から 49999 までの値を加算し、必要な範囲の値を減算します。

必要に応じて計算フィールドの式を変更してください。手順は機能します。データセット内のすべての値をテキスト ボックスから直接調べるべきではありません。

それが役に立てば幸い。

于 2012-09-06T15:02:42.877 に答える