如题:列出薪金高于公司平均薪金所有员工,所在部门,上级领导,公司的工资等级
表:emp,dept, salgrade
第一步:求出公司平均薪金
select avg(sal) from emp
第二步:求薪金高于公司平均薪金的所有员工
select * from emp where sal > (select avg(sal) from emp);
第三步:求员工所在部门,上级领导
select e1.empno, e1.ename, d.dnamefrom emp e1, emp e2, dept dwhere e1.mgr = e2.empnoand e1.deptno = d.deptno;
第四步:求员工工资等级
select e.empno, e.ename, sg.gradefrom emp e, salgrade sgwhere e.sal between sg.losal and sg.hisal
第五步:综合上述各步,得到最终SQL
select e1.empno, e1.ename, d.dname, e1.sal, sg.gradefrom emp e1, emp e2, dept d, salgrade sgwhere e1.sal > (select avg(sal) from emp)and e1.mgr = e2.empnoand e1.deptno = d.deptnoand e1.sal between losal and hisal;