相当的经典 22题 dljd

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

相当的经典

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

第二步:把第一步的结果当成临时表t 将临时表t和部门表 dept d 和工资等级表salary s进行关联,求出员工所在的部门,雇员的工资等级等

关联的条件是t.deptno = d.deptno  t.salary betweent s.lower and high;

第三步:求出第一步条件下的所有的上级领导,因为有的员工没有上级领导需要使用left join 左连接

 1 第一步:求出公司的平均薪水
 2 select avg(sal) as avgsal from emp;
 3 +-------------+
 4 | avgsal      |
 5 +-------------+
 6 | 2073.214286 |
 7 +-------------+
 8 
 9 select 
10     d.dname,
11     e.ename,
12     b.ename as leadername,
13     s.grade
14 from
15     emp e
16 join
17     dept d
18 on
19     e.deptno = d.deptno
20 left join
21     emp b
22 on
23     e.mgr = b.empno
24 join
25     salgrade s
26 on
27     e.sal between s.losal and s.hisal
28 where
29     e.sal > (select avg(sal) as avgsal from emp);
30 +------------+-------+------------+-------+
31 | dname      | ename | leadername | grade |
32 +------------+-------+------------+-------+
33 | RESEARCH   | JONES | KING       |     4 |
34 | SALES      | BLAKE | KING       |     4 |
35 | ACCOUNTING | CLARK | KING       |     4 |
36 | RESEARCH   | SCOTT | JONES      |     4 |
37 | ACCOUNTING | KING  | NULL       |     5 |
38 | RESEARCH   | FORD  | JONES      |     4 |
39 +------------+-------+------------+-------+
原文地址:https://www.cnblogs.com/lsswudi/p/10945072.html