Pb avec une requete SUM()

yunuss9 Messages postés 4 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 25 juillet 2005 - 25 juil. 2005 à 19:59
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 28 juil. 2005 à 20:22
La requete sum() me cause des pb q j ne comprends pas:

je veux recuperer la soe des montants qi est ds une table:

"select *,SUM(Montant) as TotalMontant from CONSOMMATION ,service

Where CONSOMMATION.Code_Service=Service.Code_Service"



Montant est de type int

Code_Conso est de type int aussi

Le msg d'erreur qu'il m'envoie est:

La colonne 'consommation.Code_Conso' est incorrecte ds la liste de
selection parce q'elle n'est pas contenue ds une fonction d'agrégation
et q'il n'ya pas de clause group by.

Aidez moi SVP!

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
25 juil. 2005 à 20:19
Salut,



Solution 1 vire l'étoile



Solution 2



select *,SUM(Montant) as TotalMontant from CONSOMMATION ,service

Where CONSOMMATION.Code_Service=Service.Code_Service group by consommation.Code_Conso



Mais dans ce cas tous les champs de l'etoile doivent etre dans la clause group by.



Voila
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
25 juil. 2005 à 20:20
Salut,

Cette syntaxe devrait fonctionner :

"select Service.Code_Service, SUM(Montant) as TotalMontant from CONSOMMATION ,service
Where CONSOMMATION.Code_Service=Service.Code_Service GROUP BY Service.Code_Service"

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
zakariaoued Messages postés 2 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 11:55
la solution 2 m'est adaptée car je dois afficher tous les champs aprés.mais qd je tape cette requete on me dit que :

Impossible de classer ou de comparer les objets de type text ,ntext ,image

sauf lors de l'utilisation de l'operateur LIKE ou IS NULL

Mais je ne sais pas cmnt on pourra utiliser LIKE ou IS NULL ds mon K.

Je vs remercie
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 juil. 2005 à 20:22
Salut,



Les champs textes .... ne sont pas a utilisé dans SQL server,

il faut les utiliser tres modérérement

Leur mise à jour est complexe il faut utiliser des pointeurs

et des updatetexte.

Si tu peux utiliser des varchar ou nvarchar c'est lieux

Peux peux monter a 8000 caracteres en varchar et 4000 en nvarchar Unicode oblige.



Voila
0
Rejoignez-nous