列出薪金高于公司平均薪金所有员工,所在部门,上级领导,公司的工资等级

如题:列出薪金高于公司平均薪金所有员工,所在部门,上级领导,公司的工资等级


表:emp,dept, salgrade


第一步:求出公司平均薪金

select avg(sal) from emp



第二步:求薪金高于公司平均薪金的所有员工

select * from emp where sal > (select avg(sal) from emp);
列出薪金高于公司平均薪金所有员工,所在部门,上级领导,公司的工资等级_第1张图片

第三步:求员工所在部门,上级领导

select e1.empno, e1.ename, d.dname
  from emp e1, emp e2, dept d
 where e1.mgr = e2.empno
   and e1.deptno = d.deptno;

列出薪金高于公司平均薪金所有员工,所在部门,上级领导,公司的工资等级_第2张图片


第四步:求员工工资等级

   select e.empno, e.ename, sg.grade
     from emp e, salgrade sg
    where e.sal between sg.losal and sg.hisal
列出薪金高于公司平均薪金所有员工,所在部门,上级领导,公司的工资等级_第3张图片

第五步:综合上述各步,得到最终SQL

select e1.empno, e1.ename, d.dname, e1.sal, sg.grade
  from emp e1, emp e2, dept d, salgrade sg
 where e1.sal > (select avg(sal) from emp)
   and e1.mgr = e2.empno
   and e1.deptno = d.deptno
   and e1.sal between losal and hisal;
列出薪金高于公司平均薪金所有员工,所在部门,上级领导,公司的工资等级_第4张图片




你可能感兴趣的:(常用sql,sql学习)