1

Reporting Services 2000/2005 と Visual Studio 2005 を組み込みの Report Designer を使用して、いくつかの既存の MS レポートでプロジェクトに取り組んでいます。

Stored Proc によってフェッチされたデータを表示するためにテーブルを使用するレポートを見つけました。私の仕事では、レポートと保存された Proc を変更する必要がありました。

ストアド プロシージャに変更を加えました。SQL Management Studio でテストすると、正しいデータが返されます。ただし、レポートでは、まったく同じパラメーターを使用しているにもかかわらず、一部のデータが欠落しています。

レポートのメイン テーブル用に定義されたテーブル グループに関係しているような気がします。テーブルには 2 つのテーブル グループが定義されています。ストアド プロシージャとレポートから削除されたため、2 番目のテーブル グループのアイテムの一部を削除しました。おそらく、ストアド プロシージャからテーブル グループに新しいフィールド/列を追加する必要がありますか?

この問題を調査/解決する方法、およびテーブルグループとは何か、およびそれらがどのように使用されることを意図しているかについて、誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

0

ストアド プロシージャの新しい列をテーブル グループに追加したところ、期待どおりに動作しています。

テーブル グループのいくつかの列を省略したことで、レポートはより少ないフィールドでグループ化されていたと思います。つまり、これらの行はすべて同じ値として表示されていました。

ストアド プロシージャのフィールドと一致するように新しいフィールドを 1 つずつ追加していくと、レポートの精度が向上しました。

これは、SQL で Select 句のすべてのフィールドが Group By 句にも含まれている必要があるのと似ていると思います。

于 2010-07-07T14:47:21.060 に答える
0

テーブル内のグループは、SQL クエリ内のグループと同様に機能します。テーブル内のデータは、レコードごとではなく、グループごとに 1 回だけ返されます。ただし、テーブルに詳細行を含めることもできるため、1 つのレポート テーブルからグループ レベルと詳細レベルの両方のデータを表示することもできますが、これには SQL で個別の (サブ) クエリが必要になります。

例として、SQL の販売構造を考えてみましょう。

sales_month
sales_day
sales_product
sales_value

クエリを使用して、SQL で日付順にすべての売上のリストを返すことができます。

select * from sales order by sales_month, sales_day;

または、次のクエリを使用して、SQL で月ごとのすべての売上の概要を返すことができます。

select sales_month, sum(sales_value) as monthly_sales 
from sales group by sales_month order by 1;

詳細行とグループ フッターを含む、月ごとにグループ化されたレポート テーブルを使用すると、すべての売上を日付順に一覧表示し、各月の終わりに各月の小計を表示できます。

SSRS ヘルプには、レポート内でのグループ化の使用法を示すチュートリアルがあります。

于 2010-07-07T14:21:32.740 に答える