日期:2014-05-16  浏览次数:21160 次

emp表中如何统计每个员工的领导的年薪,并按年薪由高到低排列
如:
员工姓名 领导姓名 领导年薪
。。。


------解决方案--------------------
SQL code

--如果不算奖金就自已去掉
select e.ename 员工姓名,m.ename 领导姓名,(m.sal+nvl(m.comm,0))*12 领导年薪
from emp e
left join emp m on e.mgr=m.empno
order by 领导年薪 desc;
/*

员工姓名             领导姓名               领导年薪                            
-------------------- -------------------- ----------                            
King                                                                            
Jones                King                      60000                            
Blake                King                      60000                            
Clark                King                      60000                            
Adams                Scott                     36000                            
Smith                Ford                      36000                            
Ford                 Jones                     35700                            
Scott                Jones                     35700                            
Ward                 Blake                     34200                            
Martin               Blake                     34200                            
Turner               Blake                     34200                            
James                Blake                     34200                            
Allen                Blake                     34200                            
Miller               Clark                     29400                            

已选择14行。
*/

------解决方案--------------------
SQL code

--如果要把空的排在后,加个nulls last就可以了
select e.ename 员工姓名,m.ename 领导姓名,(m.sal+nvl(m.comm,0))*12 领导年薪
from emp e
left join emp m on e.mgr=m.empno
order by 领导年薪 desc
nulls last;
/*
员工姓名             领导姓名               领导年薪                            
-------------------- -------------------- ----------                            
Blake                King                      60000                            
Clark                King                      60000                            
Jones                King                      60000                            
Adams                Scott                     36000                            
Smith                Ford                      36000                            
Ford                 Jones                     35700                            
Scott                Jones                     35700                            
Ward                 Blake                     34200                            
Martin               Blake                     34200                            
Turner               Blake                     34200                            
James                Blake                     34200                            
Allen                Blake                     34200                            
Miller               Clark                     29400                            
King                                                                            

已选择14行。
*/