0

Visual Studio 2010 と SQL Server 2012 を使用しています。

私はネットとstackoverflowのアーカイブを検索し、この問題を抱えている他の人を何人か見つけましたが、彼らの解決策を私のために働かせることができませんでした. この問題には、ユーザー定義可能なレポート パラメーターを使用したデータセットの集計値に基づくフィルター処理が含まれます。

以下の報告があります。

SSRS1

このレポートの最終的な目標は、総資産の割合としてユーザーが定義可能な現金の割合を持つポートフォリオをフィルタリングすることです。デフォルトは 30% 以上です。たとえば、ポートフォリオの合計市場価値が $100,000 で、その現金資産クラスが $40,000 の場合、これは 40% の現金比率となり、このポートフォリオはレポートに表示されます。

データセット自体のフィルターを使用して現金資産クラスのみを選択できたので、問題はありません。データセットにキャッシュ パーセンテージ パラメーターを簡単に追加しましたが、すぐに、これは集計された合計ではなく行の詳細でフィルタリングされていることに気付きました。また、ポートフォリオには複数の現金口座がある場合もあります。現金が市場価値の合計の 30% 以上であるかどうかを正確に知るために、すべての現金勘定の合計が必要です。

最初は、レポートが正しく機能していると思いました。

SSRS2

しかし、これを別のレポートと相互参照した後、このポートフォリオには 2.66%の合計現金しかないことに気付きました。これは、2 番目の現金口座にも大きなマイナス残高があるためです。それは私が気にかけているすべての現金勘定の合計です。

SSRS3

詳細行ではなく合計行に基づいて、>= キャッシュを持つポートフォリオをフィルタリングしたいと考えています。スカラー関数 SUM() を使用してデータセットを変更し、それからパラメーターを作成する必要があると思われますが、それを行うためのクエリを作成することに成功していません。また、SQL データセット レベルではなく .rdl レイヤーで何らかの方法でこれを行うことができるかどうかについても非常に興味があります。このレポートの対象となるプログラムでは、SQL 関数、ストアド プロシージャ、およびパラメータを使用する必要があるため、SQL は少し複雑です。

解決策としてクエリを変更してデータセット自体に sum() を含める必要がある場合、合計する必要があるのは 20 行目だと思います

a.PercentAssets,

レポートのデータセットは次のとおりです。

https://www.dropbox.com/s/bafdo2i6pfvdkk4/CashPercentDataSet.sql

これが .rdl ファイルです。

https://www.dropbox.com/s/htg09ypyh7f1a98/cashpercent2.rdl

ありがとうございました

4

1 に答える 1