我有两个表,Employees,sqlplus中的赋值。
EmpID
,Empname
,EmpSalary
)EmpID
,Assignment#
,WorkedHours
)。在分配表中重复了一些EmpID
,表明从事多个项目的员工。
我的问题是:
一个查询,仅显示参与多个项目的员工。
如果WorkedHours超过15,请在员工表中增加1000工资。
我对这些问题已经不以为然,任何帮助都将受到高度赞赏。
答案 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