如图,求各种方式解决办法.
--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