これは私のSQLテーブル構造がどのように見えるかです:
CREATE TABLE TempCategory
(
Id BIGINT,
Name VARCHAR(100)
)
CREATE TABLE TempSubCategory
(
Id BIGINT,
CategoryId BIGINT,
Name VARCHAR(100)
)
CREATE TABLE TempProduct
(
Id BIGINT,
SubCategoryId BIGINT,
Name VARCHAR(100)
)
http://sqlfiddle.com/#!3/2606fd/4
カテゴリを x 軸、サブカテゴリを y 軸、製品をデータとして表示する SSRS レポートを作成しています。各カテゴリには独自のサブカテゴリがあるため、各行グループの列グループにサブカテゴリを表示しています。
SSRS レポートは、値を取得できない行のセルを描画しません。したがって、私のレポートは次のようになります。
これは私の現在のクエリがどのように見えるかです:
SELECT TempCategory.Id, 'MainCategoryId',
TempCategory.Name 'CategoryName',
TempSubCategory.id 'SubCategoryId',
TempSubCategory.Name 'SubCategory',
TempProduct.Id 'ProductId',
TempProduct.Name 'ProductName'
FROM TempCategory
INNER JOIN TempSubCategory
ON TempCategory.Id = TempSubCategory.CategoryId
INNER JOIN TempProduct
ON TempSubCategory.Id = TempProduct.SubCategoryId
私が探しているのは、サブカテゴリグループごとに常に同じ数の行を返すようにクエリを変更して、データがある行にnullまたは0があるようにすることです。
例: カテゴリ 1 には 3 つのサブカテゴリがあり、製品の最大数はサブカテゴリ 1 にあるため、メインカテゴリ 1 を持つサブカテゴリごとにクエリで 5 (サブカテゴリ 1 の製品の最大数) 行を返すようにします。
カテゴリ 2 の場合、製品の最大数がサブ カテゴリ 2 にあるため、サブ カテゴリごとに 2 行が返されます。
SQLでそれを行うことは可能ですか、それともSSRSレポートでそれを行う他の方法はありますか?
- アップデート -
これは ProductName 行グループを持つテーブルです
これは SubCategory 列グループを持つマトリックスです
これは製品名の行グループを持つテーブルです