コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
【sql_24_045】販売終了
UPDATE GOODS
SET
SALE_END_DATE = '2024-07-31'
WHERE
VALID_FLG = '0'
-- NULLの判断は、「IS NULL」を使用します。
AND SALE_END_DATE IS NULL;
【sql_24_046】品数カウント
SELECT
ORDER_NO AS OD_NO
, SLIP_COMMENT AS COMMENT
-- 全体の備考の文字数から、カンマを空文字にした文字数をマイナスして1を加算する。
-- 例)「001,002」と入力されていた場合 1 + 7 - 6 = 2
, 1 + LENGTH(SLIP_COMMENT) - LENGTH(REPLACE (SLIP_COMMENT, ',', '')) AS CNT
FROM
ORDERS
ORDER BY
CNT DESC
, OD_NO DESC;
【sql_24_047】データ整理
-- 受注データ明細を先に削除する。
DELETE
FROM
ORDERS_DTL
WHERE
-- 受注データを受注日で絞り込み、該当する受注番号と一致する受注データ明細を削除する。
ORDER_NO IN (
SELECT
ORDER_NO
FROM
ORDERS
WHERE
ORDER_DATE BETWEEN '2010-01-01' AND '2010-12-31'
);
-- 受注データ明細を削除後に、同じ受注日の条件で受注データを削除する。
DELETE
FROM
ORDERS
WHERE
ORDER_DATE BETWEEN '2010-01-01' AND '2010-12-31';
【sql_24_054】原価更新
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になる場合があるので注意してください。