ソースコード
SELECT
    -- 商品データが存在する場合は、商品データの商品コードを表示し、存在しない場合は履歴データより表示する
    COALESCE(IT_M.ITEM_CODE, IT_H.ITEM_CODE) AS CODE
    , COALESCE(IT_M.ITEM_NAME, IT_H.ITEM_NAME) AS NAME
    , CASE 
        -- 履歴データに存在しない場合
        WHEN IT_H.USER_UPDATE_DATETIME IS NULL 
            THEN 'ADDED' 
        -- 商品データに存在しない場合
        WHEN IT_M.USER_UPDATE_DATETIME IS NULL 
            THEN 'DELETED' 
        -- 両方に存在して、担当者更新日時が違う場合
        WHEN IT_M.USER_UPDATE_DATETIME <> IT_H.USER_UPDATE_DATETIME 
            THEN 'UPDATED' 
        END AS COMP_RSLT
FROM
    ITEM AS IT_M 
    -- 完全外部結合で、商品と商品履歴の全データを取得します
    FULL OUTER JOIN ITEM_HISTORY AS IT_H 
        ON IT_M.ITEM_CODE = IT_H.ITEM_CODE 
WHERE
    -- 担当者更新日が違うデータを対象とします
    -- IS NOTを使用してNULL値も比較可能とします
    IT_M.USER_UPDATE_DATETIME IS NOT IT_H.USER_UPDATE_DATETIME 
ORDER BY
    CODE DESC;
提出情報
提出日時2024/04/10 14:41:44
コンテスト第12回 SQLコンテスト
問題データ操作履歴
受験者admin
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量85 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
85 MB
データパターン2
AC
83 MB
データパターン3
AC
83 MB