これが古いことは承知していますが、データセット レベルでの結合を使用して、上記の Ian のセクション 1 について詳しく説明したかったのです。(彼の答えは、私が取り組んでいるレポートにとって非常に役に立ちました。)
操作ごと:
カテゴリのリスト全体を元に戻し、何らかの方法でそれらを組み合わせる別のデータセットを持つソリューションはありますか?
それが私がうまく処理した方法ですが、共通のテーブル式 (またはもちろん一時テーブル) を使用して、別のデータセットを実際に作成しなくても処理できます。
これらのテーブルの例:
AGE_Table
ID Group Group_Desc Toys
1 A 00-10 Teddy Bear
2 B 11-20 Video Game
3 C 21-30 Sports Car
4 D 31-40 Mansion
5 E 41-50 Jewelry
People_Table (filtered for whatever date)
ID Name Age Gender Age_Group
1 Ariel 07 F A
2 Brandon 23 M C
3 Chelsea 27 F C
4 Derek 06 M A
00 から 10 の行で 2 つの結果を表示し、21 から 30 の行で 2 つの結果を表示し、結果がなくても他の年齢グループの行を表示したいとします。
さまざまな年齢グループをすべて含むデータセットを作成し、それに参加したいと考えています。一般的なテーブル式を使用したソリューションを見てください。
with CTE_Age AS
(SELECT Distinct Age_Group from AGE_Table)
SELECT ID, Name, Age, Gender, CTE_Age.Age_Group FROM People_Table
RIGHT JOIN CTE_Age ON
People_Table.Age_Group = CTE_Age.Age_Group
これは以下を返します:
ID Name Age Gender Age_Group
1 Ariel 7 F A
4 Derek 6 M A
NULL NULL NULL NULL B
2 Brandon 23 M C
3 Chelsea 27 F C
NULL NULL NULL NULL D
NULL NULL NULL NULL E
データセットでそれを取得したら、レポート ビルダー側で NULL 値を 0 に変更できます。2008R2 では、デフォルトは空白になっていると思います。