有三个表 
Emp(eid,ename,age,salary) 
Works(eid,did,pct_time) 
Dept(did,budget,managerid) 一个员工可以在不同的部门工作 
求一个查询,找出员工的姓名,他的工资超出所有他所在部门的budget

解决方案 »

  1.   

    select distinct a.ename
    from emp a,works b,dept c
    where a.eid=b.eid
    and b.did=c.did
    and a.salary > c.budge是需要这个?
      

  2.   

    select ename from emp
    where eid not in (select a.eid from works a , dept c 
                      where a.did = c.did(+) and a.salary < c.budge);
      

  3.   

    1。假如有人出现在emp表里面,却没有出现在works里面呢?赫赫。2。
    或者说,
    当我们把works和dept连接起来,就可以知道这个员工,所在的所有的部门中,最大的那个budget,
    然后和emp来连接作比较?