有个项目要做个成绩统计的模块
SQL成绩表的字段有:ID 姓名  文章编号  分数   时间
里面存放各个用户的不同文章的分数(每个用户有不同数据条数),现在需要根据时间段来统计每个用户的总分,并进行排名,最好能放在一个GridView里面直观的显示出来
有什么好的方法和技术么?望赐教!

解决方案 »

  1.   

    按用户group by 后 count文章数
      

  2.   

    先看下图:
    SELECT DISTINCT [name],SUM(value) allValue FROM test1
    WHERE [name] IN (SELECT DISTINCT [name] FROM test1)
    AND setDate BETWEEN  '2010-08-09 23:28:00' AND '2010-08-09 23:48:50'
    GROUP BY [name]
    ORDER BY allValue DESC --降序排列
    结果:原理就是先从表中查出所有人的名字来,然后在根据名字来统计该姓名对应的分数的和。
      

  3.   

    很详细啊~
    万分感谢  the_fire 兄! 看来我得好好学下SQL语句了
    结果表里如果要加上一个文章数的字段,该怎么改下呢?
      

  4.   

    SELECT DISTINCT [name],SUM(value) allValue,count(artId) artCount FROM test1
    WHERE [name] IN (SELECT DISTINCT [name] FROM test1)
    AND setDate BETWEEN  '2010-08-09 23:28:00' AND '2010-08-09 23:48:50'
    GROUP BY [name]
    ORDER BY allValue DESC --降序排列