1

SSRS でレポートを作成しようとしています。マトリックスには、列見出しとして性別があり、特に年齢層が行として定義されています。レポートは日付でソートされます (つまり、表示されるレコードは modifedAt 値でフィルター処理されます)。私の問題は、データセットがその行のデータを返さない場合でも、すべての年齢層カテゴリを表示したいということです。

したがって、たとえば、5 歳から 16 歳の子供がいる db 行がない日付に日付を設定した場合、カテゴリ名は表示したいのですが、その行に関連するセルだけを表示する必要があります。 0'. 代わりに、クエリが明らかにデータを返さないため、レポートは行全体を削除するだけです。

カテゴリのリスト全体を元に戻し、何らかの方法でそれらを組み合わせる別のデータセットを持つソリューションはありますか? 私はここで立ち往生しているので、どんな助けも大歓迎です!

4

2 に答える 2

2

これが古いことは承知していますが、データセット レベルでの結合を使用して、上記の 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 では、デフォルトは空白になっていると思います。

于 2014-07-15T23:25:45.473 に答える