以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助,如何查询全校每一个班总分最高的记录?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=140278)

--  作者:yyshiyifen
--  发布时间:2019/9/2 17:29:00
--  求助,如何查询全校每一个班总分最高的记录?
老师,请问如何建立一个查询或表,列出成绩表中,每个班总分最高的学生的记录?
班级 语文 数学 英语 总分
1 85 65 87 237
1 86 66 88 240
1 87 67 89 243
1 88 68 90 246
2 89 69 91 249
2 90 70 92 252
2 91 71 93 255
2 79 72 94 245
2 80 73 95 248
3 81 74 96 251
3 82 75 97 254
3 83 76 98 257
3 84 77 99 260
3 85 78 100 263

效果如下

班级 语文 数学 英语 总分
1 88 68 90 246
2 91 71 93 255
3 85 78 100 263

--  作者:狐狸爸爸
--  发布时间:2019/9/2 17:32:00
--  
很简单的:

Dim g As New GroupTableBuilder("统计表1", DataTables("成绩表"))
g.Groups.AddDef("班级")
g.Totals.AddDef("数学", AggregateEnum.Max)
g.Totals.AddDef("英语", AggregateEnum.Max)
g.Totals.AddDef("语文", AggregateEnum.Max)
g.Build()
MainTable = Tables("统计表1")

--  作者:yyshiyifen
--  发布时间:2019/9/2 17:54:00
--  
谢谢老师的回复,但我要的效果不是这样啊,你这个是统计出每个班级,语文,数学,英语,总分,分别是多少
但我要的效果是,每个班级总分最高的 A学生,他的语数英总分,分别是多少。
麻烦老师你了

--  作者:有点蓝
--  发布时间:2019/9/2 19:56:00
--  
直接按照总分排序不就行了

Tables("成绩表").sort = “总分 desc

--  作者:狐狸爸爸
--  发布时间:2019/9/2 21:03:00
--  
se lect * from {成绩表} a  inner join  ( sel ect 班级,max(总分) as 最高分 from {成绩表} group by  班级) b on a.班级 = b.班级 and a.总分 = b.最高分
--  作者:yyshiyifen
--  发布时间:2019/9/2 21:19:00
--  

老师,是这样的,成绩表有100条记录,10个班,直接总分排序,成绩表还是有100条记录,

现在我只要100条记录里面每个班总分最高分的一条记录,10个班,就是10记录。


--  作者:yyshiyifen
--  发布时间:2019/9/2 21:27:00
--  
好的,我试试。