我在 sqlplus 中有两个表,Employees,Assignment。
- 员工(
EmpID
、Empname
、EmpSalary
) - 作业(
EmpID
、作业#
、工作时间
)。
一些 EmpID
在分配表中重复,表明员工从事多个项目。
我的问题是:
该查询仅显示参与多个项目的员工。
如果工作时间超过 15,则在员工表中将工资增加 1000。
这些问题让我伤透了脑筋,任何帮助将不胜感激。
最佳答案
参与多个项目的员工:
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
如果工作时间超过 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
关于mysql - 内连接、更新、选择重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35592566/