内部联接,更新,选择重复的条目

时间:2016-02-24 03:15:46

标签: mysql sql

我有两个表,Employees,sqlplus中的赋值。

  • 员工(EmpIDEmpnameEmpSalary
  • 作业(EmpIDAssignment#WorkedHours)。

在分配表中重复了一些EmpID,表明从事多个项目的员工。

我的问题是:

  1. 一个查询,仅显示参与多个项目的员工。

  2. 如果WorkedHours超过15,请在员工表中增加1000工资。

  3. 我对这些问题已经不以为然,任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

参与多个项目的员工:

select e.EmpID, e.EmpName
from Employees e
join Assignment a on e.EmpID = a.EmpID
group by e.EmpID, e.EmpName
having COUNT(*) > 1

如果WorkedHours超过15,那么将薪水增加1000:

update Employees
set EmpSalary = EmpSalary + 1000
from (select e.EmpID, e.EmpName, SUM(a.WorkedHours) TotalHours 
      from Employees e
      join Assignment a on e.EmpID = a.EmpID
      group by e.EmpID, e.EmpName) g      
where g.EmpID = Employees.EmpID and g.TotalHours > 15