题目所需文件 TGROUP(小组)、TNAME(名字)、TRESULT(考核结果) 题目要求: 假设小组有一个人员考核结果不为通过时,小组的考核结果为未通过,查询考核结果为通过的小组组员,结果输出小组、名字
试试
select * from 表名where TGROUP in (select distinct TGROUP from 表名 where TRESULT = '通过')
什么数据库:mysql?oracle?SqlServer?
select *,case when b.小组 is not null then '未通过' else '通过' end as 是否能过 from 表名称 a
left join (select * from 表名称 where 结果='未通过') b on a.小组名称=b.小组名称
select * from table
where TGROUP not in (
select DISTINCT TGROUP from table
where TRESULT<>'通过'
)
select TGROUP, TNAME from (
select TGROUP, TNAME, TRESULT,(case when TRESULT != "通过" then 1 else 0 end) result1 from table) a group by TGROUP, TNAME having sum(result1) = 0
先把考核不为通过的记录标记为 1,然后 按小组汇总,只找这个标记的和为0 的,也就是没有不通过的小组