ソースコード
UPDATE SKU 
SET
    STD_COST_PRICE = SUB.STD_COST_PRICE
    , UPDATE_USER_NAME = 'MODIFY'
    , USER_UPDATE_DATETIME = '2024-08-31 00:00:00' 
FROM
    -- 副問合せで、商品コード毎の標準原価の平均を算出する。
    ( 
        SELECT
            SK1.GOODS_CODE
            , GD.STD_COST_PRICE
            -- 平均した値をROUNDで四捨五入する。(小数第1位を四捨五入なのでパラメータの指定はなし)
            , ROUND(AVG(SK1.STD_COST_PRICE)) AS SCP 
        FROM
            SKU AS SK1 
            -- 標準原価を取得するために、品目データを内部結合する。
            INNER JOIN GOODS AS GD 
                ON GD.GOODS_CODE = SK1.GOODS_CODE 
        -- 商品コード、標準原価でグルーピングする。
        GROUP BY
            SK1.GOODS_CODE
            , GD.STD_COST_PRICE
    ) AS SUB 
WHERE
    SUB.GOODS_CODE = SKU.GOODS_CODE 
    -- 副問合せで求めた平均値と比較する。
    AND SKU.STD_COST_PRICE < SUB.SCP;
-- WHERE句で副問合せを使用して標準原価の平均値を求めて比較しようとすると
-- TLEになる場合があるので注意してください。
 
提出情報
提出日時2024/08/16 19:17:48
コンテスト第2回 SQLコンテスト初級編
問題原価更新
受験者admin
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量92 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
84 MB
データパターン2
AC
86 MB
データパターン3
AC
92 MB