Forum Webscript.Ru

Общие => Базы данных => Тема начата: C++ от 21 Апреля 2003, 21:51:56

Название: Не работает запрос:(((
Отправлено: C++ от 21 Апреля 2003, 21:51:56
Привет!
Есть таблица:
_____________________
| id | c1 | c2 | c3 |
|____|____|____|____|
Все столбцы целые, кроме c1...
Делаю запрос:
SELECT DISTINCT c1,SUM(c2)/(SUM(c3)+1) FROM table WHERE id=20 ORDER BY SUM(c2)/(SUM(c3)+1) DESC LIMIT 5

Запрос не выполняется...
Не подскажите что не так?
Название: Не работает запрос:(((
Отправлено: fidget от 21 Апреля 2003, 22:17:46
> Запрос не выполняется...
что значит не выполняется?
Ошибку выдает? Если да, то какую?
Название: Не работает запрос:(((
Отправлено: C++ от 21 Апреля 2003, 23:35:17
Да, выдает ошибку:
Invalid use of group functions
Название: Не работает запрос:(((
Отправлено: C++ от 22 Апреля 2003, 00:41:44
Xander
Это не имеет значения, записей ведь с одним id может быть сколько угодно....
Название: Не работает запрос:(((
Отправлено: C++ от 22 Апреля 2003, 08:46:08
Нет, ничего не меяется, пробовал. Всё равно выдает эту ошибку....
Название: Не работает запрос:(((
Отправлено: semya от 22 Апреля 2003, 09:40:43
1) твоя ошибка более точно звучит как: Mixing of GROUP columns (min(), max(), count()...) with no groups columns is illegal if there is no GROUP BY clause. (перевод надеюсь не требуется)
2) исходя из этого все исправляется очень просто:

SELECT DISTINCT c1,SUM(c2)/(SUM(c3)+1) as \'Das_ist_eine_summa\' FROM try WHERE id=20 GROUP BY c1 ORDER BY Das_ist_eine_summa DESC LIMIT 5

обрати внимание на AS - без него будешь получать ту же ошибку...

надеюсь это то, что тебе было нужно...
Название: Не работает запрос:(((
Отправлено: C++ от 22 Апреля 2003, 12:50:16
semya
Да, именно то, что нужно.
Большое спасибо!