2010-02-20 4 views
0

J'ai besoin d'obtenir le nombre d'articles qui ont un commentaire mais je ne peux pas obtenir cette instruction SQL pour travailler pour moi ........ un conseil?Sélectionnez * dans la table avec le problème where and order by clause

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

Message d'erreur:

colonne "TableName.ID" est invalide dans la clause ORDER BY, car il ne figure pas dans une fonction d'agrégation ou la clause GROUP BY.

Que manque-t-je exactement?

+1

Quel est le message d'erreur? Ou est-ce simplement ne pas retourner les lignes? En outre, quel est le type de données pour le champ de commentaire? Est-il nul? – David

+0

La colonne "TableName.ID" n'est pas valide dans la clause ORDER BY car elle n'est contenue ni dans une fonction d'agrégat ni dans la clause GROUP BY. – Etienne

Répondre

4

Attendez une minute ...

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

vous choisissez un compte, de sorte que l'ordre par la clause est inutile. Vous devriez obtenir un résultat scalaire. (une seule valeur, pas un ensemble si lignes)

Est-ce une question piège? C'est trop tôt pour ça.

Supprimez simplement la clause "Order By". C'est inutile.

+2

David ne vous donne pas une requête à essayer. – Nirmal

+0

C'est vrai, @Nirmal. Merci .. Je répétais sa requête (au cas où il la changerait après que je l'ai signée, j'ai eu des gens qui font ça alors j'ai l'impression de répondre à la mauvaise question.) – David

+0

Merci! Tôt le matin !!! – Etienne

0

essayez ceci (je l'ai essayé dans le serveur Sql pas MySql)

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