部门明智的最高工资+2000

时间:2012-11-30 04:36:38

标签: mysql sql database

我有两个表员工和部门

employee
empid
name
salary
location

department
deptno
deptname
empid
mangerid

现在我想找到部门最高薪水,然后按2000增加

3 个答案:

答案 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
    );