У меня есть 3 таблицы:
- Проекты (у проекта может быть много фаз)
- Фазы (у фазы может быть 0 или много задач)
- Задачи(первичный ключ: id_task, id_phase, id_project)
Каждая задача имеет стоимость, а стоимость этапа равна сумме (стоимости) ее задач.
Я хочу обновитьстоимость каждой фазы в проекте, я пробовал этот запрос:
UPDATE Phases SET cost = (SELECT sum(cost) FROM Tasks WHERE Tasks.IDprojet = 'xxx' AND Tasks.RefPhase = Phases.RefPhase)
... но это дает мне некоторые правильные значения, а другие являются NULL.Я использовал SUM(COALESCE(cost,0))
, но ничего не изменилось, возможно, запрос неправильный или мне нужно сделать функцию для проверки значения, возвращаемого значением Select, если оно равно нулю или не должно быть изменено на 0?
Не могли бы вы помочь мне?пожалуйста!