我有两个表员工和部门
表employee
列
empid
name
salary
location
表department
列
deptno
deptname
empid
mangerid
现在我想找到部门最高薪水,然后按2000增加
答案 0 :(得分:1)
ed:Hah我没想到你实际上意味着更新行,我以为你只是想检索这些值。 @Ajith Sasidharan的回答是更完整的。
您的部门表引用员工表而不是相反的方式似乎很奇怪,但是这应该做你想要的:
SELECT
d.deptno,
d.deptname,
max(e.salary+2000)
FROM
department d
INNER JOIN
employee e
ON
e.empid = d.empid
GROUP BY
d.deptno, d.deptname;
答案 1 :(得分:1)
update emp
set sal = sal + 2000
where empid in (
select empid from dept where (deptno,sal) in (
select d.deptno,max(e.sal)
from emp e,
dept d
where e.empid = d.empid
group by deptno));
答案 2 :(得分:0)
select e.name,e.salary,d.name as Department
from employee e join dept d on e.dept = d.id
where (e.salary, e.dept) IN (
select max(salary), dept
from employee join dept on (employee.dept = dept.id)
group by employee.dept
);