2016-02-02 1 views
0

Привет всем Я имею простой ASP-скрипт asp/access, который я бы хотел прочитать из таблицы, названной проекциями для оценок. Оценки вводятся с полем, называемым raceday. Я нашел следующий sql на этом сайте и адаптировал его для соответствия моим именам полей/таблиц.sql рейтинг в доступе с фильтром

SELECT tid ,tots,raceday, 1+ (SELECT COUNT(T1.tots) 
FROM rankings AS T1 
WHERE T1.tots >T2.tots) AS Rank FROM rankings AS T2 
ORDER BY tid asc 

Мне нужно найти способ фильтрации по расе и рассчитать ранг возвращенных записей. Следующий код возвращает записи для raceday = 4, но он вычисляет ранг во всех записях.

SELECT tid ,tots, raceday, 1+ (SELECT COUNT(T1.tots) 
FROM projections AS T1 
WHERE T1.tots >T2.tots) AS Rank FROM projections AS T2 
where raceday = '4' 
ORDER BY tid asc 

При возвращении в ряды по 4 говорят записи в рядах будет 2,12,5,22

Я бы ожидать, что они будут 1, 2, 3, 4

Я также попробовал где raceday = выражение «4» после раздела> t2.tots но он возвращает все записи

Любая помощь будет высоко оценен

+0

Вы должны включить 'где raceday =«4'' внутри подзапроса .. –

+0

спасибо @Mark C. для этого я попробовал, чтобы WHERE raceday = '4' и T1.tots> T2.tots) AS Rank Я получаю ранжирование по raceday, но все равно получаю результаты для других возвращенных возвратов. попробовал добавить отдельные строки в sql, но он все равно возвращает все записи. – Redge

+0

Нам нужно будет увидеть схему и некоторые примеры данных для ранжирования и прогнозов. Я вижу две разные таблицы в вашем вопросе. –

ответ

0

Я нашел решение я добавил raceday = ? для основного запроса, а также к югу от запроса

ВЫБОР raceday, TID, карапузы, 1 + (SELECT COUNT (T1.tots)
ИЗ проекций AS T1
ГДЕ raceday = '4' и T1.tots> Т2 .tots) AS ранга проекций AS T2
где raceday = '4'
ORDER BY raceday возрастанию

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