?? 你用的是什么数据库阿怎么会不一样? access下的: SELECT * FROM t AS t1 WHERE t1.grade in( SELECT top 1 grade FROM t where t.sno=t1.sno order by grade desc ); 结果 2004374110,124,91 2004374110,126,91 2004374111,124,91 2004374111,123,91 2004374111,126,91
6楼shakaqrj不对,我要的是每门课最高分的那个人,每一门课只要一个人。sqlserver数据库来的。你的子查询只是返回所有课程成绩中最高的和 SELECT * FROM sc AS t1 WHERE t1.grade =( SELECT top 1 grade FROM sc order by grade desc );是一样的,没用,不符合要求
我觉得这样就可以了,但是还是列出成绩相等的人 select * from sc where(cno+grade) in (select cno+max(grade) from sc group by cno ) order by cno 谢谢shakaqrj,虽然他的答案不是我想要的
你用的是什么数据库阿怎么会不一样?
access下的:
SELECT *
FROM t AS t1
WHERE t1.grade in(
SELECT top 1 grade
FROM t
where t.sno=t1.sno
order by grade desc
);
结果
2004374110,124,91
2004374110,126,91
2004374111,124,91
2004374111,123,91
2004374111,126,91
SELECT *
FROM sc AS t1
WHERE t1.grade =(
SELECT top 1 grade
FROM sc
order by grade desc
);是一样的,没用,不符合要求
select * from sc where(cno+grade)
in (select cno+max(grade) from sc group by cno ) order by cno
谢谢shakaqrj,虽然他的答案不是我想要的
where max(grade)
order by cno