データの異常を修正するのに助けが必要です。Left Join を使用して 2 つのテーブルに基づいてビューを作成すると、結果にいくつかの重複があります (ロジック セクションで説明されているように)。
データ設定:
*******************
TEST1
*******************
PRODUCT VALUE1 KEY
1 2 12
1 3 13
1 4 14
1 5 15
*******************
TEST2
*******************
KEY ATTRIBUTE
12 DESC
13 (null)
14 DESC
15 (null)
これまでに試したこと
SELECT
B.KEY,
B.ATTRIBUTE,
A.PRODUCT
A.VALUE1
FROM TEST2 B LEFT JOIN TEST1 A ON TEST2.KEY = TEST1.KEY;
上記のSQLで得られるのは
KEY ATTRIBUTE PRODUCT VALUE1
12 DESC 1 2
13 (null) 1 3
14 DESC 1 4
15 (null) 1 5
私が得る必要があるもの
KEY ATTRIBUTE PRODUCT VALUE1
12 DESC 1 2
13 DESC 1 3
14 DESC 1 4
15 DESC 1 5
ロジック: ID 1 のすべての製品は同じであるため、NULL の場合は属性を保持する必要があります。したがって、PRODUCT と ATTRIBUTE を区別すると、製品 ID ごとに常に 1 行になります。Test1 には 100 を超える製品があり、Test2 には対応する説明があります。
注:これはデータ ウェアハウジングであるため、正規化された設計ではありません。なのでデザインに関してはノークレームでお願いします
属性フィールドに CASE ステートメントを入れたいです。
CASE
WHEN ATTRIBUTE IS NULL THEN {fix goes here}
ELSE ATTRIBUTE
END AS ATTRIBUTE
誰かがフィドルを見る必要があり、それからここに行きます