日期:2014-05-17  浏览次数:20862 次

小白 请教一个问题
select deptno,sal from emp where emp.sal= 
(select max(avg_sal) from (select avg(sal) avg_sal,deptno from emp group by deptno)); 这句语句为什么会显示未选定行





------解决方案--------------------

这样写就没错了
SQL code
select deptno,sal from emp where emp.sal=  
(select round(max(avg_sal),2) from (select avg(sal) avg_sal,deptno from emp group by deptno));

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

--要先明白自已的意思
--分开你的来看,下面这个语句你想,取出来按部门求平均工资最大的
select max(avg_sal) from (select avg(sal) avg_sal,deptno from emp group by deptno);
--而你这句,是取emp中sal等于取出来的平均工资最大值的记录,但emp中没有任何一个人的工资是等于这个值的,因此是没有记录的
select deptno,sal from emp where emp.sal=取出来的平均工资最大值