0

レポート ビルダーでレポートを作成しています。2 つのデータセットがありますが、複雑なためマージできません。私がやりたいのは、最初のデータセットの ID を使用して 2 番目のデータセットのデータを検索するレポートを作成することです。これは可能ですか?以下は例であり、正確なコードではありませんが、必要なものは次のとおりです。

最初のデータセット:

select itemID from Items

2 番目のデータセット:

select itemID, saleAmount, salePrice from Sales

レポートを次のように設定したいと思います。

ItemID        | Sale Count                                                  | Sale Price 
--------------+-------------------------------------------------------------+------------
Items.itemID  | sum(Sales.saleAmount) where items.itemID = Sales.itemID     | sum(Sales.salePrice ) where items.itemID = Sales.itemID

したがって、最終結果は次のようになります。

ItemID        | Sale Count                                                  | Sale Price 
--------------+-------------------------------------------------------------+------------
1             | 11223                                                       | $123123
2             | 4537                                                        | $8375

これは可能ですか?多分条件付きルックアップで?

4

1 に答える 1

1

データセットを作成するときにデータを結合できないのは残念です。

それができない場合は、他にいくつかのオプションを考えることができます。

LookupSet とカスタム コードを使用する

この優れた回答SSRS 内のグループ間でグループ内の集計を組み合わせる方法には、これを行う方法の完璧な例があります。

SumLookup基本的に、LookupSet 呼び出しの結果を受け取り、集計値を返す関数 (例: ) にカスタム コードを追加します。レポートには次のような式があります。

=Code.SumLookup(
    LookupSet(Fields!itemID.Value, Fields!itemID.Value, Fields!saleAmount.Value, "Sales")
)

簡単なテストを作成しましたが、完全に機能します。

サブレポートを使用する

これを行うには、項目データセットに基づいてテーブルを作成し、詳細行にサブレポートを埋め込んで売上情報を表示します。

itemIDサブレポートには、Sales を適切にフィルター処理するためのパラメーターが必要です。サブレポートに渡すように親テーブルを設定する=Fields!itemID.Valueと、これが行ごとに繰り返されitemID、関連する Sales データが表示されます。

価値のあるものについては、最初のオプションを検討します。カスタム コードがいくつかありますが、それは簡単で、複数のレポートを展開する必要はありません。ただ私にはきれいに見えます。

于 2013-04-29T16:54:37.393 に答える