2012-02-15 7 views
0

私は、システムアラームを表す統計データを網羅したレポートを持っています。SSRS 2008グループ変数 - グループ内の項目を数える

ユーザーが選択した日付範囲内のすべての統計を取り消してドリルダウンスタイルのレポートを作成した後、アラームのcodeIdにグループを追加してグループ化するものを用意しました。

私がしたいのは、これらのグループ内のアイテム数をcodeIdでカウントすることです。グループヘッダー全体を構成する連結文字列の一部としてカウントを使用する予定です。基本的に「アラームコード#{codeId} - {説明} - 合計:{合計}」と表示されます。

私の問題は、私のクエリでカウントを行う場合、レポートにヒットする前にデータを事前にグループ化する必要があるということです。私がそれをしたら、グループを拡大するための詳細データはありません。要約と詳細データセットを実行することは私の頭を少し上回りますが、私が調べなければならないオプションです。

私は、グループ変数を使用してグループ内に含まれるアイテムの数を数えたいと考えていました。誰かが私にそれを引き離そうとする大まかなステップを教えてもらえますか?

答えて

2

ここでグループ変数を使用しているように見える場合は、必要以上に複雑になります。

すでにSSRSにグループがあるので、CountRows関数を使用できます。

="Alarm Code #" & Fields!CodeID.Value 
& " - " & First(Fields!Description) 
& " - Total: " & CountRows() 

をまたは、サイズに応じて、あなたはあなたのSQLクエリに相関サブクエリを追加することができます:例えば、プレースホルダには、この表現を入れ

SELECT 
    CodeID, 
    MyField, 
    MyOtherField, 
    (SELECT COUNT(*) FROM myTable t1 WHERE t1.CodeID = t2.CodeID) AS MyRowCount 
FROM 
    myTable t2 

これはので、もし、特に効率的なSQLではありませんあなたは何十万行以上もこれを実行していますが、私は最初のアプローチに行きます。

+0

ああ、それほど簡単ではないと信じられない人。私はcountrowsを使ってテーブルをチェックし、countrows <1であればそれを隠し、代わりにデータラベルを表示しません。どういうわけか、このレポートをするときに私はそれについてすべて忘れてしまった。ありがとうJamie F! – TWood

+0

ええ、SSRSの集計機能はかなりスマートです。スコープを自動的に現在のグループに調整するので、スコープを指定しなくても通常どおりに処理できます。しかし、あなたはいつもグループの名前を追加することができます: 'CountRows(" MyGroupName ")'あなたは適切なグループ化レベルの数を得ることが確実です。 –

関連する問題