1

次のデータセットを使用して SSRS レポートを作成しています。「期間」のフィルターがあります。複数選択フィルターです。データは「アカウント」フィールドごとにグループ化されます。各グループの合計費用を表示する必要があります (これは簡単でした)。同じグループ レベルで「予算」も表示する必要があります。問題は、予算データが重複していることです。以下を参照してください。

最初のグループ (Account=100 AND Period=201301) の場合、Sum([Budget])200 が生成されますが、これは正しくありません。ユーザーがフィルターから期間を 1 つだけ選択した場合に役立つ Average 関数を使用できます。複数の値を選択した場合 (例: 201301,201302)、平均は (100+100+150+150)/4=125 になります。これは、100+150=250 でなければならないため、正しくありません。返されたデータセットのすべての行を平均したくありません。

ID Account Period  Expense Budget
1  100     201301  20      100
2  100     201301  30      100
3  100     201302  10      150
4  100     201302  40      150
5  200     ...................

では、これを実現する式をどのように記述すればよいでしょうか。汚い回避策は、予算列の冗長な値を削除して、Sum([Budget])重複を心配せずに安全に使用できるようにすることです。更新されたデータセットは次のようになります。

ID Account Period  Expense Budget
1  100     201301  20      100
2  100     201301  30      NULL
3  100     201302  10      150
4  100     201302  40      NULL
5  200     ...................

どちらのアプローチについてもアドバイスをお願いします。ありがとうございました。

4

2 に答える 2

1

最も洗練された方法は、FIRST()集計関数を使用することです。

=FIRST(Fields!Budget.Value, "MyAccountGroupName")

これが機能しない状況がいくつかあります。次に、説明するときにロジックをクエリに移動する必要があります。そうしないと、レポートに埋め込まれたコードを使いこなすことができます。

于 2013-02-08T03:23:59.860 に答える
0

私はあなたの「汚い回避策」アプローチに従います。SSRS 内でちょっと凝った計算を行うだけで結果を得ることができるかもしれませんが、それは完全に不明瞭です。

于 2013-02-08T02:59:55.067 に答える