Похоже, вы просто забыли ключевое слово SELECT
в своем подзапросе.
UPDATE employee
SET total_cost = (SELECT sum(c.price)
FROM course c
INNER JOIN schooling s
ON s.id_course_schooling = c.id_course
WHERE s.id_employee_schooling = id_employee);
Я также изменил ваше неявное соединение на явное для лучшей читаемости.
Но оно также выглядит как то, что вы собираетесь делать, не должно быть сделано вообще. total_cost
, кажется, хранит избыточные данные, которые могут вызвать несоответствия. Таким образом, физический столбец total_cost
должен быть полностью удален. Когда вам нужно это значение при запросе сотрудников, получите его из других таблиц с объединениями или подзапросами. Таким образом, значения всегда верны. Вы также можете создать вид, чтобы сделать это более удобным.