求一条查询成绩的sql

name result date course_name
张三 41 2013-1-1 会计基础
张三 31 2013-1-1 财经法规与会计职业道德
张三 60 2013-1-2 财经法规与会计职业道德
张三 77 2013-1-2 会计基础
李四 55 2013-1-1 会计基础
李四 55 2013-1-1 财经法规与会计职业道德
李四 99 2013-1-3 财经法规与会计职业道德
李四 77 2013-1-3 会计基础

数据库结构是这样的 需求是 查询出最近一次考试合格或不合格的人,要去重
结果要这样要当天考试所有成绩大于60才算合格
name date

张三 2013-1-2

李四 2013-1-3

百度 SQL 会出现很经典的SQL教程

select name,date from tab group by name,date having min(result)>=60

select DISTINCT * from table where result >= (select min(result) from table group by result)

--最近一次考试合格的人(可能有同姓名的人,所以这里引入学号sno、 学生表t_student)
select *
from t_student
where sno in (
select distinct( sno )
where date = ( select min(date) from t_scourse )
and result>=60
)

--最近一次考试不合格的人(可能有同姓名的人,所以这里引入学号sno、 学生表t_student)
select *
from t_student
where sno in (
select distinct( sno )
where date = ( select min(date) from t_scourse )
and result<60
)