2012-08-02 2 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

+0

вы можете удалить 'order by point desc' после' from karbar' и повторить попытку с момента фильтрации имени пользователя. Я больше знаком с mysql и не знаком с tsql. – sel

+0

спасибо, очень мой друг, это нормально – quantum62

Смежные вопросы