表结构:
1、部门表:部门编号,部门名称,位置
create table dept(
deptno int(10) primary key,
dname varchar(14),
loc varchar(13)
);
2、薪资表:薪资等级、当前等级的最低薪资、当前等级的最高薪资
create table salgrade(
grade int(11),
losal int(11),
hisal int(11)
);
3、员工表:员工编号、名称、工作岗位、上级编号、录用日期、工资、奖金、部门编号
create table emp(
empno int(4) primary key,
ename varchar(10),
job varchar(9),
mgr int(4),
hiredate date,
sal double(7,2),
comm double(7,2),
deptno int(2)
);
1、取得每个部门最高薪水的人员名称
先取得每个部门的最高薪水,组成临时表,然后与员工表连接得到名称
select e.ename, t.maxSal from emp e
join (select deptno, max(sal) maxSal from emp group by deptno) t
on e.deptno = t.deptno and e.sal = t.maxSal;