2017-05-01 12 views
0

実際には7つのレポートを1つに作成しています。最初のページには、このように見て、各レポートのレコードの数を持っている必要があります:SSRSグルーピング集計問題

    Current Old Total 

    Report 1  1300  1200 2500 
    Report 2  2500  1000 3500 

私は行グループを持つテーブルを作成し、現在と古い値を取得するには、このような式を使用:

=IIF(Fields!praccode.Value <> "DO", sum(CountDistinct(Fields!last_name.Value & Fields!first_name.Value)),0) 

praccode.Valueには複数の値がありますので、すべての値を集計する値が1つだけ必要な場合は、各値のグループカウントを与えています。<> "DO"どのように私はすべての値のための単一のカウントを得るでしょう< "DO"?

私が見ている別の問題は、これらの式をさらに追加すると、レポートが遅くなり、遅くなることです。これらのカウントをSSRSの代わりにSQLで直接作成する方が良いでしょうか?

答えて

0

あなたは各レコードのpraccodeフィールドの値を評価したいので、あなたが集約関数の内部でそれを含める必要があります:

=CountDistinct(IIF(Fields!praccode.Value <> "DO", Fields!last_name.Value & Fields!first_name.Value, NOTHING)) 

あなたに何も使用しないする必要がありますユニークな値が必要なときにカウントされないようにIIFの他の選択肢。

すべての式には少し時間がかかります。そのため、クエリで実行できる計算はすべてレポートのスピードアップに役立ちます。同じ行の数を合計していた元の式は、常に単一の値を合計していたにもかかわらず遅くなっていたため、不必要でした。

+0

これは私の元の表現と同じ結果をもたらしました。 "DO"ではない各値の数です。私は「DO」でないすべての値を1つだけカウントする必要があります。 – jackstraw22

0

私はそれを理解しました。私は、式ボックスを右クリックし、合計を選択する必要がありました。次に、元の式ボックスを非表示にします。