2.Group by 一定要选全table所有字段.没有办法
3.你可以用Delphi的存储过程控件,另外把语句写进存储过程里,你用的是sqlserver吧。
实在不行你就把所有运动员的最大成绩的记录插到一个临时表里,在取前8条记录。

解决方案 »

  1.   

    3.query1.first.
      显示n条记录:放在临时表里好了.
      

  2.   

    这种情况不要用 GROUP BY 来做,你应该仔细看看Group by 的用法!
    Delphi 的 Query 控件支持的SQL要看所用的数据库系统,Paradox 好
    像不支持TOP, 对于桌面数据库我建议你用Access,以下的SQL可以在
    Access 中执行!4 SELECT DISTINCTROW TOP 8 序号, 成绩
    FROM Fieldmatch
    ORDER BY 成绩 DESC
      

  3.   

    你的’参赛者号码‘字段前还要加上“DISTINCT ”
    你的那一条COUNT语句不对整个记录集起作用不能达到你的要求
    QUERY是支持TOP 的。。错误 原因很多。