【发布时间】:2015-06-24 09:54:00
【问题描述】:
我有一个表,我需要使用另一个表中指定值的总和来更新它。需要更新的表名为 EngTasks,其中包含一个名为 RunStatus 的字段。 RunStatus 可以保存 3 个值:
- 1 = 未开始
- 2 = 进行中
- 3 = 完成
我需要查看的表名为 EngTaskLog,其中包含名为 HoursApplied 的字段和名为 EngTaskID 的外键时间>。对于每条记录,我需要查看 EngTaskLog 中的所有记录,并合计所有 HoursApplied 其中 EngTaskID = ID EngTasks 记录需要更新。
我一时兴起尝试了以下查询,但出现错误:
UPDATE EngTasks
SET EngTasks.RunStatus = 1
FROM EngTasks ET
INNER JOIN
EngTaskLog ETL
ON
SUM(ETL.HoursApplied) = 0
我没有丰富的查询经验,所以上面的代码对于有更多经验的人来说可能看起来很荒谬。
我希望以上内容有意义,感谢您的时间和帮助。
【问题讨论】:
-
RunStatus 是如何确定的?您想简单地更新每个 EngTaskID 的总小时数还是这里有更复杂的东西?
标签: sql-server sql-update inner-join aggregate-functions