-- 这种别名的用法,ORACLE 不 支持。
select max(sal) m,deptno d  
from emp
where m=e1.sal and d=dept.deptno 
group by deptno-- 这里提供一下语句,LZ 不妨试一下。    多列 in (多列) ,这样的用法。
 select * from emp e1
left join dept
on dept.deptno=e1.deptno
where (sal, deptno ) in ( 
select max(sal) m,deptno d  
from emp
group by deptno
)
-- 如果 LZ 觉的这个不好用,还有分析函数的用法,需要的话,可以直接回复我,或 baidu 一下。

解决方案 »

  1.   

    看你的指令无非就是想取每个部门的最高工资员工信息吧,看你的指令思路有点乱。
    可以参考
    select e.* 
      from emp e
     where (e.deptno,e.sal)
        in (select deptno,max(sal)
              from emp
             group by deptno)
      

  2.   

    select max(sal) m,deptno d  
    from emp
    where m=e1.sal and d=dept.deptno 这写的就不对,如果你把你查出来的结果做为一个子查询。那么在外面引用m和d是可以的,但你现在是在里面引用,不可以。