У меня есть такая таблица:
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-запрос для обновления «Percentage».
То, что я пробовал, выглядит так:
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 Невозможно указать целевую таблицу 't1' для обновления в предложении FROM).
Есть идеи?