怎样实现这个超难度SQL查询

iif 2010-05-19 01:27:11
数据源表employee_list如下:
status 类型 编号 姓名
N 基础部分 0001 陈一
Y 基础部分 0001 陈一
Y 拓展部分 0001 陈一
N 专业部分 0001 陈一
N 基础部分 0002 程二
Y 基础部分 0002 程二
Y 拓展部分 0002 程二
N 专业部分 0002 程二

希望实现每人每一种类型,都必须满足Y才显示查询结果
(注意:如果同一类型状态即有为Y也有为N的都不查询出来)。该怎么写sql语句呢,请高人指点。
status 类型 编号 姓名
Y 拓展部分 0001 陈一
Y 拓展部分 0002 程二
...全文
64 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iif 2010-05-19
  • 打赏
  • 举报
回复
sorry,刚才第一次回复错了。

FlySQL:
你的是正解。thanks
xys_777:
你第一次提出的那个方案实现不了。
iif 2010-05-19
  • 打赏
  • 举报
回复
thanks xys_777:
你的这个方法可以实现。谢谢。
永生天地 2010-05-19
  • 打赏
  • 举报
回复
select * from employee_list t where 
status='Y' and 类型 in (
select 类型 from employee_list
where t.编号=编号
group by 类型 ,编号 ,姓名
having count(1)=1 )

/*status 类型 编号 姓名
------ ---------- ---------- ----------
Y 拓展部分 0001 陈一
Y 拓展部分 0002 程二

(所影响的行数为 2 行)

*/
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 flysql 的回复:]

SQL code
select *
from tb t
were not exists(select 1 from tb where 类型=t.类型 and 编号=t.编号 and status='N')
[/Quote]
解决了。
FlySQL 2010-05-19
  • 打赏
  • 举报
回复
if object_id('[employee_list]') is not null drop table [employee_list]
go
create table [employee_list]([status] varchar(1),[类型] varchar(8),[编号] varchar(4),[姓名] varchar(4))
insert [employee_list]
select 'N','基础部分','0001','陈一' union all
select 'Y','基础部分','0001','陈一' union all
select 'Y','拓展部分','0001','陈一' union all
select 'N','专业部分','0001','陈一' union all
select 'N','基础部分','0002','程二' union all
select 'Y','基础部分','0002','程二' union all
select 'Y','拓展部分','0002','程二' union all
select 'N','专业部分','0002','程二'

-->查询
select *
from [employee_list] t
where not exists(select 1 from [employee_list] where 类型=t.类型 and 编号=t.编号 and status='N')
/**
status 类型 编号 姓名
------ -------- ---- ----
Y 拓展部分 0001 陈一
Y 拓展部分 0002 程二

(2 行受影响)
**/
永生天地 2010-05-19
  • 打赏
  • 举报
回复
好像不符合lz的要求
永生天地 2010-05-19
  • 打赏
  • 举报
回复
select * from employee_list
group by 类型 ,编号 ,姓名,status
having status='Y' and count(1)=1

FlySQL 2010-05-19
  • 打赏
  • 举报
回复
select *
from tb t
were not exists(select 1 from tb where 类型=t.类型 and 编号=t.编号 and status='N')

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧