次のようなテーブルがあります。
ItemID PersonID Score Percentage
==========================================
1 1 10 [ = 10 / 10+30 = 25%]
1 2 30 [ = 30 / 10+30 = 75%]
2 1 20 [ = 20 / 20+40 = 33%]
2 2 40 [ = 40 / 20+40 = 67%]
「パーセンテージ」のデータは入力されませんが、一定の時間間隔で自動計算されます。計算は、パーセンテージ = スコア / ItemID の合計スコアです。
「SELECT-do the maths-UPDATE」メソッドを使用する代わりに、「パーセンテージ」を更新する単一の SQL を記述しようとしています。
私が試したことは次のようなものです:
UPDATE tb_temp AS t1
SET t1.Percentage =
CEIL( t1.Score /
(SELECT SUM(t2.Score) FROM tb_temp AS t2 WHERE t2.ItemID = t1.ItemID)
);
(エラー コード : 1093 FROM 句で更新対象のテーブル 't1' を指定することはできません)。
何か案が?