0

私は次のSQLを使用しています(2つの同様のクエリへのユニオンを使用):

SELECT
    distinct a.source,
    a.p_id,
    a.name,
    b.prod_count,
    b.prod_amt,
    'Def' as prod_type
FROM
    dwh.attribution_product_count a
        LEFT OUTER JOIN
        (
SELECT
    distinct source,
    p_id,
    name,
    sum(acct_count) as prod_count,
    sum(acct_amt) as prod_amt
FROM
    dwh.prod_count
WHERE
    month = 3 AND
    default_banner_flag = 0 AND
    loan_flag = 3
GROUP BY
    source,
    name,
    p_id ) as b
        ON
        a.p_id = b.p_id
UNION
SELECT
    distinct a.source,
    a.p_id,
    a.name,
    b.prod_count,
    b.prod_amt,
    'Other' as prod_type
FROM
    dwh.attribution_product_count a
        LEFT OUTER JOIN
        (
SELECT
    distinct source,
    p_id,
    name,
    sum(acct_count) as prod_count,
    sum(acct_amt) as prod_amt
FROM
    dwh.prod_count
WHERE
    month = 3 AND
    default_banner_flag = 1 AND
    loan_flag = 3
GROUP BY
    source,
    name,
    p_id
ORDER BY
    name ) as b
        ON
        a.p_id = b.p_id

私が得ている出力は次のようになります。

ここに画像の説明を入力 基本的に、FakeName #2 には実際の数値 (null ではない) を示す行が 1 つあるため、FakeName #2 のみを表示する必要があります。これは、FakeName #2 の null 行も必要であることを意味します。しかし、FakeName #1 と #3 には 2 つの null 行があるため、表示する必要はありません。これを実行できる SQL コマンド (またはクエリの編集) の種類は何ですか?

4

1 に答える 1