当前位置: 代码迷 >> Sql Server >> 求SQL语句 数据淘选
  详细解决方案

求SQL语句 数据淘选

热度:26   发布时间:2016-04-24 09:43:20.0
求SQL语句 数据筛选
大家好!小弟求教下
有一个DATATABLE 表 
里有数据 
姓名  检查项目   状态
 张三   腹部彩超  未检
 张三   睾丸彩超  未检
 张三   乳腺彩超  未检
张 三   甲状腺彩超 排队
 李三   腹部彩超  未检
 李三   睾丸彩超  已检
  李三  心脏彩超  未检
李三   甲状腺彩超 排队
 李五   腹部彩超  未检
 李五   睾丸彩超  未检
李五  甲状腺彩超  未检
....后面还有很多人..

请教下 如果筛选出像李五这样 包含彩超检查项目 并且全部状态为未检的客人 
------解决思路----------------------

select * from datetable
 where    状态='未检'
 and   检查项目 like'%彩超%'

------解决思路----------------------

select * from datetable where 姓名 not in (select distinct 姓名 from datetable where 状态!='未检' and 检查项目 like'%彩超%')

------解决思路----------------------

select * from 状态  where 姓名  in
(
select 姓名 from 
(
select  姓名,count(状态) as 数量 from 
(select   姓名,状态 from 状态 group by 姓名,状态) as z  group by 姓名
) as p where 数量=1
) and 状态='未检' and 项目 like '%彩超%'

------解决思路----------------------
2楼正解 我写的比较复杂了
------解决思路----------------------
SELECT * 
FROM DATATABLE t WHERE 检查项目 LIKE '%彩超%' 
AND NOT EXISTS(SELECT 1 FROM DATATABLE a WHERE t.姓名=a.姓名 AND a.检查项目 LIKE '%彩超%' AND 状态<>'未检')
  相关解决方案