使用内部联接和聚合函数更新列

Update Column Using Inner Join and Aggregate Function

我有一个 table,我需要使用另一个 table 的指定值的总和来更新它。需要更新的 table 名为 EngTasks,其字段名为 RunStatusRunStatus 可以保存 3 个值:

我需要查看的 table 名为 EngTaskLog,它包含一个名为 HoursApplied 的字段 和名为 EngTaskID 的外键。对于每条记录,我需要查看 EngTaskLog 中的所有记录并汇总所有 HoursApplied 其中 EngTaskID = 需要更新的 EngTasks 记录的 ID。

我一时兴起尝试了以下查询,但出现错误:

UPDATE EngTasks
SET EngTasks.RunStatus = 1
FROM EngTasks ET
INNER JOIN
    EngTaskLog ETL
ON
    SUM(ETL.HoursApplied) = 0

我没有太多的查询经验,所以上面的代码对于更有经验的人来说可能看起来很荒谬。

希望以上内容有意义,感谢您抽出时间提供帮助。

    UPDATE ET
    SET ET.RunStatus = 1
    FROM EngTasks ET
    INNER JOIN (
        SELECT ETL.EngTaskID, SUM(ETL.HoursApplied) s
        FROM EngTasks ET
        INNER JOIN EngTaskLog ETL ON ET.ID = ETL.EngTaskID 
        GROUP BY ETL.EngTaskID
        HAVING SUM(ETL.HoursApplied) = 0 ) x ON ET.ID = x.EngTaskID