2010-02-20 5 views
0

Мне нужно получить количество элементов, у которых есть комментарий, но я не могу заставить эту инструкцию SQL работать для меня ........ любой совет?Выберите * from table with where and order by clause problem

Select count(Name) as TotalComments 
from TableName where comment <> '' 
order by ID 

Сообщение об ошибке:

Колонка «TableName.ID» является недействительным в ORDER BY предложении, поскольку он не содержится ни в статистической функции или предложения GROUP BY.

Что мне не хватает точно?

+1

Что сообщение об ошибке? Или это просто не возвращает строки? Кроме того, каков тип данных для поля комментариев? Является ли он недействительным? – David

+0

Столбец «TableName.ID» недействителен в предложении ORDER BY, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. – Etienne

ответ

4

Минуточку ...

Select count(Name) as TotalComments 
from TableName where comment <> '' 
order by ID 

Вы выбора счета, поэтому Заказывайте статьи не имеет смысла. Вы должны получить скалярный результат. (одно значение, а не набор, если строки)

Это вопрос фокуса? Это слишком рано.

Просто удалите предложение «Заказать по». Это не нужно.

+2

Дэвид не дает вам попробовать. – Nirmal

+0

Правильно, @ Нирмал. Спасибо. Я повторил его запрос (в случае, если он изменит его после того, как я подпишу. У меня были люди, так что похоже, что я отвечаю на неправильный вопрос.) – David

+0

Спасибо! К раннему утром !!! – Etienne

0

попробовать это (я пробовал в Sql сервер не в MySql)

SELECT  Name, COUNT(ID) AS TotalComments 
FROM  TableName 
WHERE  (Comment IS NOT NULL) 
GROUP BY Name 
ORDER BY TotalComments