еще можешь попробовать сделать в вложенном селекте, стачало выполни в одном все арифметические действия и получи пока все записи, а потом в другом выбери их в отсортированный варианте , просто я сам в сложных запросах не сильно разбираюсь, могу только советы дать
думаю нужен вложенный селекс в внутренно группируешь по по ид куртинки и суммируешь рейтинг а во внешнем уже выводишь в нужнем порядке, я не знаю как правильно синтаксический это написать, а то бы написал
Поля таблицы ratings ---> id, picture_id, rating, user_who_made_rating.
pictures содержит поля --> id,picture_file_name,picture_content_type
SELECT TOP 100 p.picture_file_name FROM Pictures p
JOIN Ratings r ON p.id = r.picture_id
ORDER BY r.rating DESC;
вернет тебе 100 самых "рейтинговых" картинок (а именно путей к ним)
SELECT TOP 100 * FROM Pictures p
JOIN Ratings r ON p.id = r.picture_id
ORDER BY r.rating DESC;
а вот так вернутся все данные из этих двух таблиц
еще раз перечиталд ветку. так и не понял, зачем тебе кака-ято арифметика впринципе? у тебя есть данные о том, какой рейтинг у картинки (ratings.rating). если rating у одной картинки больше, чем у другой, то она "круче"... или у тебя по другому реализован подсчет рейтинга?
Последний раз редактировалось deedoc; 28.01.2010 в 15:12..