MySQL SUM(GROUP BY)

时间:2015-06-01 09:50:49

标签: mysql

我正在尝试添加ID相同的列。我是MySQL的新手,但似乎Group By是我需要的。

这是我的尝试,但它给了我一个语法错误

| SITEID | STAFFID |假日|共

Update SiteStaff
SET Total = SUM(h.Holiday) 
GROUP BY h.StaffID

3 个答案:

答案 0 :(得分:1)

我怀疑你有假期表。如果是这样,您需要使用join update的查询,看起来像这样:

Update SiteStaff ss LEFT JOIN
       (SELECT h.StaffId, SUM(h.holiday) as total
        FROM Holidays h
        GROUP BY h.StaffID
       ) h
       ON ss.StaffId = h.StaffId
    SET ss.Total = COALESCE(t.total, 0);

答案 1 :(得分:0)

我认为可能存在以下错误原因: -

  1. 您在代码中使用了h.Holiday。那么这里的h是什么?
  2. 第二个原因可能是您必须使用单独的代码来首先查找SUM并更新表。

答案 2 :(得分:0)

通过查看更多示例

来解决这个问题
UPDATE SiteStaff p, (SELECT StaffID, SUM(Holiday) as mysum
 FROM SiteStaff GROUP BY StaffID) as s

    SET p.Total = s.mysum
    WHERE p.StaffID = s.StaffID