高手帮我写写这个语句

akiy 2006-03-21 09:55:03
表1
TABLEStudent
STID(学号),Name(姓名),....
1,小明
2,小红
3,小强
TABLEScore
STID(学号),SortID(第几次考试),Score(考试成绩)
1,1,70
2,1,65
1,2,80
3,4,50
2,3,88
3,1,90
要求列出姓名,最高一次的考试成绩,最高这次的考试次数号
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuweiwei 2006-03-21
  • 打赏
  • 举报
回复
对不起忘记贴错了
中间那两句是测试用的!!!要去掉

select TB.学号,第几次考试,BB.最高分 from TB,(select 学号,max(考试成绩)最高分 from TB group by 学号)BB
where 考试成绩=BB.最高分 and TB.学号=BB.学号
yuweiwei 2006-03-21
  • 打赏
  • 举报
回复
如楼上所说的,要最高成绩对应两次考试号,如果两个都取的话,则应该这样

CREATE TABLE TB (学号 INT,第几次考试 INT, 考试成绩 INT)
INSERT INTO TB SELECT 1,1,70
UNION ALL SELECT 2,1,65
UNION ALL SELECT 1,2,80
UNION ALL SELECT 3,4,50
UNION ALL SELECT 2,3,88
UNION ALL SELECT 3,1,90
union all select 1,1,80
union all select 1,3,80
union all select 2,2,65
union all select 3,3,90


select * from TB

select 学号,max(考试成绩)最高分 from TB group by 学号

select TB.学号,第几次考试,BB.最高分 from TB,(select 学号,max(考试成绩)最高分 from TB group by 学号)BB
where 考试成绩=BB.最高分 and TB.学号=BB.学号
结果如下:

学号 第几次考试 最高分
3 1 90
3 3 90
2 3 88
1 2 80
1 1 80
1 3 80

rivery 2006-03-21
  • 打赏
  • 举报
回复
楼主的问题不太严谨。
如果最高成绩对应两次考试号,那么应该取哪次的?是随便取一个还是两个都取?
这在实际当中是可能的。
zlp321002 2006-03-21
  • 打赏
  • 举报
回复
--测试环境
CREATE TABLE TB (STID INT,SORTID INT, SCORE INT)
INSERT INTO TB SELECT 1,1,70
UNION ALL SELECT 2,1,65
UNION ALL SELECT 1,2,80
UNION ALL SELECT 3,4,50
UNION ALL SELECT 2,3,88
UNION ALL SELECT 3,1,90
--查询
WITH TBCTE(STID,SORTID,SCORE)
AS
(
SELECT STID,SORTID,SCORE FROM TB A WHERE NOT EXISTS
(SELECT 1 FROM TB WHERE STID=A.STID AND SCORE>A.SCORE)
)
SELECT TA.Name,TB.SCORE,TB.SORTID
FROM TA INNER JOIN TBCTE TB
ON TA.STID=TB.STID
--结果
/*
Name SCORE SORTID
---------- ----------- -----------
小明 80 2
小红 88 3
小强 90 1

(3 行受影响)
*/
--删除环境
Drop table TA,TB
ghtyan 2006-03-21
  • 打赏
  • 举报
回复
select B.name,A.sortid,A.score from TABLEScore as A join
(select Stid,max(score)as maxscore from TABLEScore group by stid)as AA
on A.stid = AA.stid and A.score = AA.maxscore
join tablestudent B on A.stid = B.stid

34,575

社区成员

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

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