2

別の場所またはすべての場所からの会計データを表示する必要があるレポートがあります。

テーブル販売:

PartId    Rev     LocId
1         $10     1
2         $2      1
3         $5      2

クエリが、すべての収益を取得するための次のような基本的なものであるとしましょう。

SELECT SUM(rev) FROM Table_sales

レポートを特定の場所に制限できるようにしたい場合は、次のように変更する必要があります。

SELECT SUM(Rev) FROM Table_sales WHERE LocId = @param

しかし、それを行った場合、複数のクエリを使用せずにすべての場所を取得するにはどうすればよいでしょうか?

参考までに、SQL 2008 フィルター オプションは、実際のクエリでは group by 関数を使用するため、使用している実際のクエリでは機能しないようです。

また、SSRS 2008 DataSet クエリは式にすることができますが、それを機能させることができないようです。

4

2 に答える 2

3

SSRS 2008 で言及されたフィルター オプションやデータセット クエリについてはよくわかりませんが、SSRS の古いバージョンの一部では、次のようなものを見たことがあります。

SELECT SUM(Rev) FROM Table_sales WHERE LocId = @param or 'All' = @param

これが最も効率的な方法であるとは思えませんが、すべての結果 (「All」という用語をパラメーターとして渡すことによって) または必要な LocId のみ (パラメーターとして渡すことによって) を選択できる 1 つのクエリを持つことができます。適切な LocId をパラメーターとして)。

于 2009-05-21T19:10:22.860 に答える
0

多分あなたはそれを使うことができます:

SELECT SUM(Rev) FROM Table_sales WHERE LocId IN (@param)
于 2009-05-22T08:34:41.650 に答える