【发布时间】:2019-02-19 13:07:27
【问题描述】:
我有 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 返回的值是否为 null 或不更改为 0?
你能帮帮我吗!
【问题讨论】:
-
您使用的是什么 DBMS?这个问题的答案因他们而异。
-
我使用的是 Sql server 2017
标签: sql sql-server sql-update aggregate-functions sql-server-2017