34,590
社区成员
发帖
与我相关
我的任务
分享
;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 分。
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