如何获取表中的列的总和(对于特定的employeeID)并将其存储在另一个表的另一列中?

时间:2016-07-20 13:35:45

标签: java mysql sql

我有两个表,“员工”和“费用”

员工表有两列“EmployeeID(PK)”和“Expense_Total”

费用有两列“EmployeeID”和“Expense”。  请注意,这里的EmployeeID不是PK,因为一个员工可能有很多费用。我想找到所有员工的总和,然后将其插入“员工”表中的“Expense_Total”列,为每个员工。这该怎么做?我尝试过以下方法:

$uri_parts = explode('person', $_SERVER['REQUEST_URI'], 2);
echo $uri_parts[1]; // will return /10

2 个答案:

答案 0 :(得分:1)

我认为您已尝试以下查询。

如果您第一次插入意味着您在Employess Table中没有记录,那么您可以使用此插入查询来插入费用总额:

INSERT INTO `employees`(id,expense_total) SELECT emp_id, SUM(expense) FROM expenses GROUP BY emp_id

如果您已经有数据进入Employees而不是需要在Employees表中执行Update Query:

UPDATE employees emp SET emp.expense_total = (SELECT SUM(expense) FROM expenses WHERE emp_id = emp.id)

请试一试。

您可以在此处查看:http://sqlfiddle.com/#!9/3f4d67

答案 1 :(得分:0)

UPDATE
  Employees em
  LEFT JOIN(
    SELECT
      e.employeeID AS employeeID,
      SUM(e.expense) AS totAmnt
    FROM
      Expense e
    GROUP BY
      e.employeeID) AS t
    ON t.employeeID = em.employeeID
SET
  em.Expense_Total = IFNULL(t.totAmnt,0);

再见