JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
売上累計と売上明細に関する仮想問題
ある UPDATE を行うとデータが全部消えてしまうというのです。担当者は一体、何をしてしまったのだろう。
依頼事項) 売上累計と売上明細に関する累計処理
当日の締め処理で売上明細を集計して売上累計に積算処理お願いします…
ついでに更新日をキーに商品毎に1回だけ実行するように配慮しておいてください。
テーブルレイアウト
売上明細 ⇒⇒⇒ 積算処理 ⇒⇒ 売上累計
------------------------------ ---------------------------------
商品コード CHAR(2) NN / PK 商品コード CHAR(2) NN / PK
本日販売数 NUMBER(4) NN 総販売数 NUMBER(8) NN
販売日 DATE NN 更新日 DATE
NN = NOT NULL / PK = PRIMARY KEY
UPDATE 売上累計
SET 総販売数 =
総販売数 + (
SELECT SUM (本日販売数) FROM 売上明細
WHERE 売上明細.商品コード = 売上累計.商品コード
AND 売上明細.販売日 >= TRUNC (SYSDATE )
AND 売上明細.販売日 < TRUNC (SYSDATE +1)
),
更新日 = SYSDATE
WHERE
更新日 < TRUNC (SYSDATE +1)
このSQLは「ある」条件で例外が発生し終了する。
もし総販売数がNOT NULL制約が存在しなければ、例外は発生せずに売上データを失うことになっていた。
⇒ 売上累計と売上明細に関する仮想問題(解答)