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

如图,求各种方式解决办法.

--18、查询 部门当中每个员工基本工资都大于1200的部门名称

 select distinct 员工.部门编号,部门.部门名称 from 员工,部门  where 员工.部门编号 not in (select 部门编号 from 员工 where 基本工资 < 1200 group by 部门编号 ) and 部门.部门编号=员工.部门编号


with ccc as

  select 部门编号,基本工资,ROW_NUMBER() over (PARTITION by 部门编号  order by 基本工资 asc) as row from 员工  
)
select b.部门名称 from ccc a inner join 部门 b on a.部门编号=b.部门编号 where a.row=1 and a.基本工资>1200

这二种方式可以正确的算出来,求详细的解释,或别的方式,谢谢.

------解决方案--------------------
select * from 部门表 where (select count(1) from 员工表 where 员工表.基本工资<=1200 and 员工表.部门编号=部门表.部门编号)<=0