求助一个SQL语句怎么写

舞步灬 2015-10-26 11:34:45


如图一个表的数据结构。
如何查询所有三门课程都及格的学生信息?这个SQL语句该如何写?
谢谢帮助的大神!
...全文
150 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
道玄希言 2015-10-26
  • 打赏
  • 举报
回复


;with tb01(id, name, class, score) as 
(
    select 1, '张三','英语', 60 union all
    select 2, '张三','语文', 50 union all
    select 3, '张三','数学', 70 union all
    select 4, '李四','英语', 80 union all
    select 5, '李四','语文', 70 union all
    select 6, '李四','数学', 90 union all
    select 7, '王五','英语', 60 union all
    select 8, '赵六','语文', 40 union all
    select 9, '孙七','数学', 90 
)

select name, score as minscore from 
(
select min(score) as score, count(1) as num, name from tb01 group by name
) t
where t.num = 3 and t.score >=60   --三门课程全部都有成绩,且最低成绩不低于 60 分。
绿豆丫 2015-10-26
  • 打赏
  • 举报
回复
create table #t (name varchar(20),kc nvarchar(20) ,score int)

insert into  #t values('zs','english',40)
insert into  #t values('zs','chinese',60)
insert into  #t values('zs','japan',80)


insert into  #t values('ww','english',60)
insert into  #t values('ww','chinese',60)
insert into  #t values('ww','japan',80)

insert into  #t values('zl','english',40)
insert into  #t values('zl','chinese',60)
insert into  #t values('zl','japan',80)



select name from #t a where exists(select * from #t where score>=60 and a.name=name and a.kc=kc) group by name having count(1)>=3

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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