2012-08-02 46 views
0

我有一个简单的表格,它有一些记录关于学生的记录。我想确定每个学生的基础点的排名。我使用以下查询。它可以当我得到所有学生的查询,但是当我按姓名或家庭搜索学生时,所有学生都有1个等级,我知道它的正常但我有任何解决方案。当我在每个班级按姓名搜索学生时,我想获得真实的排名你知道应用解决方案吗?查找其中包含学生指向的学生的排名

Select username ,average,[fname],[lname],point, Rank() over(order by point desc) as 'ranking' from karbar where ([email protected]) order by point desc 

回答

1

使用子查询。

SELECT * from 
(Select username ,average,[fname],[lname],point, 
Rank() over(order by point desc) as 'ranking' 
from karbar order by point desc) t 
WHERE [email protected] 
+0

感谢答复,但它有以下错误:ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式无效,除非TOP或FOR XML也被指定。 – quantum62 2012-08-02 07:26:52

+0

您可以在'from karbar'后面删除'order by point desc',然后再次尝试,因为您正在过滤用户名。我更熟悉mysql并且不熟悉tsql。 – sel 2012-08-02 07:31:08

+0

非常感谢你我的朋友 – quantum62 2012-08-02 07:35:04