日期:2014-05-18  浏览次数:20517 次

想求出 每位学号 每门课程的最低分的id ,无限感谢!!!
成绩表
字段\记录如下:

学号           课程 分数 id
20040001   中兽医学 57           3248939
20040001   中兽医学 86           4063589
20040001   计算机       80           4000215
20050002   计算机 80           5000212
20050002   营销学       70           5000213
 
想求出每位学号   每门课程的最低分的id,郁闷很久了,没搞定,今天来请教各位大师,无限感激!!


------解决方案--------------------
http://community.csdn.net/Expert/topic/5073/5073353.xml?temp=.600445
------解决方案--------------------
create table #t(学号 varchar(10), 课程 nvarchar(10), 分数 int, id varchar(10))
insert #t select '20040001 ', N '中兽医学 ', 57, '3248939 '
union all select '20040001 ',N '中兽医学 ', 86, '4063589 '
union all select '20040001 ',N '计算机 ', 80, '4000215 '
union all select '20050002 ', N '计算机 ', 80, '5000212 '
union all select '20050002 ', N '营销学 ', 70, '5000213 '

select id from #t t1
join
(
select 学号,课程, min(分数) [分数] from #t
group by 学号,课程
) t2 on t1.学号=t2.学号 and t1.课程=t2.课程 and t1.分数=t2.分数
order by t1.学号
/*
id
----------
3248939
4000215
5000213
5000212
*/
drop table #t
注意有可能出现学号,课程, 分数全都相同的两条数据。