有一张表EMP:ID是关键字,代表员工编号;Salary是该员工薪水;ManID是该员工所属部门的部门经理的员工编号。需要注意的是:员工分普通员工和部门经理,部门经理的ManID和自己的ID相同。其中EMP的一小部分数据如下:          ID       Salary      ManID
100      6500        100
200      5500        200
101      6600        100
102      6200        100
103      5100        100
104      6700        100
201      5800        200
202      4200        200
203      3500        200
204      2100        200 请写出一条SQL语句,以便查找到符合如下条件的员工ID:“薪水不少于所属部门的部门经理薪水的普通员工ID”.

解决方案 »

  1.   

    select id from emp as emp_temp where salary>=(select salary from emp where id=emp_temp.manid) and id<>manid;
      

  2.   

    select id 
    from emp 
    where salary >=(select salary from emp where id=manid) and id<>manid
    group by manid
      

  3.   

    都这么喜欢子查询...
    SELECT a . * 
    FROM EMP a, EMP b
    WHERE a.ManID = b.ID
    AND a.ID <> a.ManID
    AND a.Salary >= b.Salary