2017-02-06 5 views
3

SSRSマトリックスレポートから上位20行を取得し、残りの行を21行目に集計し、行名を「その他」にハードコードします。SSRSマトリックスレポートでトップ20行、残り21行目を取得

私は、 "Category_Name"に基づく行グループ化と "Creation_Time"に基づく列グループ化を使用してSSRSマトリックスレポートを作成しました。列グループ "Creation_Time"は、 "M/yyyy"形式で日付を表示するように書式設定されています。私は各グループのCount(Id_Number)として "Id_Number"を集計しており、最下位または降順にcount(Id_Number)でソートされた上位20個のレコードを最高にします。

画像で示したように私は視界条件を設定している

私は行「その他」

=count(iif(RunningValue(Fields!Category_Name.Value,countdistinct,nothing)>20,Fields!Id_Number.Value,0) 

ため、以下の式を与えている。しかし、それは動作しませんでした。 「実行中の関数をネストされた集計として指定することはできません」というエラーが表示されます。

私は以前、トップ20の行を与えるカウント(Id_Number)に基づくSSRS行グループ化でTOP Nフィルタを使用しました。しかし、「グループ合計」を行グループに追加すると、すべての行の合計が得られます上位20行だけではありません。私が考えたロジックは、全行の合計から上位20行の合計を差し引くことでした。しかし、私はトップ20行の合計を得ることができません。

私は2つのパラメータ、@Beginと@endで基本的なSQLクエリを使用:この報告書の所望の出力がこれです

SELECT Category_Name, Id_Number, Creation_Date 
FROM Tbl 
WHERE Creation_Date BETWEEN @Begin AND @End 

私があたり、すべてを取得しています最後の行「その他」以外の出力

+0

あなたはSQLクエリからデータを取得していることにより、フィルタリングされ、別の独立したTablixの中に追加しますか? – iamdave

+0

はい、mssqlクエリからデータを取得しています。 –

+4

あなたは 'row_number'とラッピング' SELECT'を使用して、代わりにあなたのレポートのあなたのSQLでこれを処理することになるでしょう。スクリプトを投稿できますか? – iamdave

答えて

0

以下が含まれるように、SQL SELECTスクリプトの一部を改正: CASE ROW_NUMBER()OVER(ORDER SUM BY(ID_NUMBER)DESCを)> 20 'タイプ'

ASその後、 'トップ20' 他の 'その他' の終了次に、あなたのレポートで「タイプ」=「その他」

関連する問題