2010-10-21 3 views
0

У меня проблемы с MySql прямо сейчас. У меня есть запрос, который работает отлично, я использую его некоторое время, но сегодня я застрял в этом.mysql avg() не работает как ожидалось

Этот запрос:

select avg(valor), tipo_id, users_id, datetime from entries where users_id = '1' and tipo_id = 1 and date_format(datetime,"%Y-%m-%d") between "'2010-09-20" and "2010-10-20" and date_format(datetime,"%h:%i") between "11:59" and "18:59" and excluded= 'n' 

Запрос возвращает значение Avg для поля доблести, что это нормально. Но, когда я изменяю значение users_id на 635, я не могу получить значение avg(). У меня есть данные с этим user_id, и они подходят к диапазону datetime.

Я действительно не знаю, что может быть неправильно с моим запросом, и с почти 700 пользователями, это время, когда я вижу, что это происходит.

+0

Проверить значения NULL в столбце дознания, которые могут вызывать расчет –

+0

В valor coloumn нет значений NULL, но не с этим user_id, связанным с – apocalypse

ответ

0

Выполнить это без ср (доблесть) части, посмотрим, какие результаты, возможно, некоторые из данных доблести является проблемой. Может быть, у вас есть строка или что-то еще. И что именно вы получаете в ответ? Любая ошибка?

+0

Я не получаю ошибки, если я запускаю wihout avg, я тоже не получаю результата, если я изменю user_id, все будет в порядке. Каждый user_id, который я пытаюсь, возвращает мне что-то, и у всех есть некоторые данные точно так же, как проблемные users_id – apocalypse

+0

Если вы не получаете данных для этого пользователя, то данные таблицы являются проблемой, а не запросом. Вы сир, что у вас есть данные для user_id = 635 в вашей таблице. Проверьте это с помощью некоторого инструмента DBA, такого как phpMyAdmin. –

+0

Да, у меня есть данные, я использую сиквел-про, чтобы заглянуть в него и запустить запросы тоже. – apocalypse

0

Попробуйте добавить GROUP BY users_id

select avg(valor), tipo_id, users_id, datetime from entries 
where 
    users_id = '1' 
    and 
    tipo_id = 1 
    and 
    date_format(datetime,"%Y-%m-%d") between "'2010-09-20" and "2010-10-20" 
    and 
    date_format(datetime,"%h:%i") between "11:59" and "18:59" 
    and 
    excluded= 'n' 
GROUP BY users_id 
+0

, ему не нужен GROUP BY в этом случае. Он объединяет все результаты, если я правильно понимаю. –

+0

Да, группировка - это не то, что я сказал. Я не получаю никакого результата, и это то, что мне нужно решить. – apocalypse

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

  • Нет связанных вопросов^_^