1

グループ、これをできる限り説明しようと思います。(ある程度) 意味があることを願っています。私が作成したビューから、「スポンサー」の顧客タイプと、CustomerType ごとに 1 年、2 年、3 年後に非アクティブになっているアカウントの数を示すデータを取得しています。例えば:

SponsorID | CustomerType | ExpiredAfter | Total
1234        D              1 Year         5
1234        RA             1 Year         7
1234        CA             1 Year         3
1234        D              2 Years        2
1234        RA             2 Years        4
1234        CA             2 Years        1
1234        D              3 Years        8
1234        RA             3 Years        1
1234        CA             3 Years        6

私が抱えている問題は、SponsorID に ExpiredAfter 1 年という RA がない可能性があるため、データに何も表示されないことです。したがって、取得する代わりに:

SponsorID | CustomerType | ExpiredAfter | Total
1235        D              1 Year         5
1235        RA             1 Year         0
1235        CA             1 Year         3

私は得る:

SponsorID | CustomerType | ExpiredAfter | Total
1235        D              1 Year         5
1235        CA             1 Year         3

繰り返しますが、これに意味があるかどうかはわかりませんが、私がやりたいことは、値があるかどうかに関係なく、すべての ExpiredAfter にすべての顧客タイプを含めることです。値がない場合は、0 または Null を強制したいだけです。レポート用に 0 のデータ行が必要です。

助言がありますか?

4

3 に答える 3

8

LEFT JOINの代わりにを使用する必要があるようですINNER JOIN

于 2010-01-05T15:22:33.487 に答える
6

また、使用している DBMS とクエリに応じて、ISNULL(total, 0) または COALESCE(total, 0) を使用する必要がある場合があります。 LEFT JOIN から 0 の値がないままになります。

于 2010-01-05T15:26:20.693 に答える
0

私には、あなたは前向きな報告を求めているように思えます。クロス結合を使用してみてください。クロス結合は、1 つのテーブルのすべての行を別のテーブルのすべての行にリンクし、可能なすべての結果を出力として提供します。

于 2018-10-22T21:13:23.920 に答える