GROUP BY

GROUP BY - SQL/NoSQL - Programmation

Marsh Posté le 26-04-2006 à 10:00:59    

Bonjour à tous,  
 
Je souhaite avoir à l'écran quelque chose de ce type :  
FILIALE = 23 (23 = 12 + 11) 12 correspond à valvn de concession 1 et 11 à valvn de concession 2 (concession1 et concession2 forment la FILIALE)
 
Ma requete est la suivante :  

Code :
  1. SELECT fil_lib, sum(comd_valvn) FROM commandes INNER JOIN concessions ON conc_cle=comd_concession INNER JOIN filiales ON fil_cle=conc_filiale GROUP BY fil_lib


 
Le problème cette erreur :  
ERROR:  function sum(character varying) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
 
Pouvez-vous m'aider??? Je ne vois pas où est mon erreur


Message édité par jenny50 le 26-04-2006 à 10:23:49
Reply

Marsh Posté le 26-04-2006 à 10:00:59   

Reply

Marsh Posté le 26-04-2006 à 10:21:19    

c'est pas du php, ça, c'est du SQL.
Par contre ton erreur ne fait pas penser à du SQL, donc je m'interroge sur ta manière de faire ça...on peut voir le code qu'il y a autour?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2006 à 10:27:24    

ben pour le moment, je n'ai pas de code autour... c'est juste une requete dans PGADMIN (équivalent de myadmin).
 
Je souhaite faire cette requete pour avoir une ligne sous total par filiale. Ma requete pour le moment c'est ça :  

Code :
  1. SELECT conc_lib, objcomd_valeur, comd_valvn, comd_vallogan, comd_valpart, comd_valmarch, fil_cle, fil_lib, marq_lib FROM commandes INNER JOIN concessions ON conc_cle = comd_concession INNER JOIN objectifscomd ON objcomd_concession = comd_concession INNER JOIN filiales ON conc_filiale = fil_cle INNER JOIN marques ON fil_marque = marq_cle ORDER BY fil_cle, conc_lib ASC


Donc ça m'affiche à la suite toutes les lignes par concessions.
 
Vous comprenez?

Reply

Marsh Posté le 26-04-2006 à 10:29:54    

comd_valvn est un champ de quel type?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2006 à 10:34:21    

varchar

Reply

Marsh Posté le 26-04-2006 à 10:41:36    

On ne peut pas faire une addition sur du varchar.
Si c'est de l'Oracle, il faut faire écrire SUM(TO_NUMBER(comd_valvn))


Message édité par olivthill le 26-04-2006 à 10:43:07
Reply

Marsh Posté le 26-04-2006 à 10:41:53    

...et t'as pas l'impression qu'une somme de varchar ça veut rien dire?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2006 à 10:46:03    

effectivement je n'avais pas fait attention à ça... désolé de vous avoir embeté enfin cela prouve que vous savez aider les gens.
 
C'est du PostGré... il y a une solution ou je suis obligé de changer mon type?

Reply

Marsh Posté le 26-04-2006 à 10:50:43    

jenny50 a écrit :

effectivement je n'avais pas fait attention à ça... désolé de vous avoir embeté enfin cela prouve que vous savez aider les gens.
 
C'est du PostGré... il y a une solution ou je suis obligé de changer mon type?


Citation :

HINT:  No function matches the given name and argument types. You may need to add explicit type casts.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2006 à 11:26:55    

pourquoi un varchar si le champ ne contient que du numerique? :??:


---------------
MZP est de retour
Reply

Marsh Posté le 26-04-2006 à 11:26:55   

Reply

Marsh Posté le 26-04-2006 à 11:28:35    

J'ai donc changer mon type pour le champs comd_valvn
 
Maintenant j'ai un autre problème... Comment j'affiche mes résultats dans mon tableau.

Code :
  1. echo $result->comd_valvn;
  2. echo $result->sum(comd_valvn);


 
Ces 2 écritures ne fonctionnent pas... Alors je ne vois pas quoi mettre. Avez-vous une idée??

Reply

Marsh Posté le 26-04-2006 à 11:35:15    

print_r($result), et regarde ce qu'il t'affiche.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2006 à 11:46:53    

Ou mets explicitement dans ta requete:
 
SELECT fil_lib, sum(comd_valvn) AS sum_comd_valvn FROM ...
 
Ton aggregat sera alias sous sum_comd_valvn


---------------
MZP est de retour
Reply

Marsh Posté le 26-04-2006 à 13:13:31    

Comment je fais avec plusieurs : car si je fais ça il me dis que comd_vallogan n'existe pas. Quand il y a que valvn c'est bon mais si je mest les autres ça ne va plus
 

Code :
  1. SELECT fil_lib, sum(comd_valvn), sum(comd_vallogan), sum(comd_valpart), sum(comd_valmarch) AS sum_comd_valvn, sum_comd_vallogan, sum_comd_valpart, sum_comd_valmarch FROM commandes INNER JOIN concessions ON conc_cle=comd_concession INNER JOIN filiales ON fil_cle=conc_filiale WHERE fil_cle=$fil GROUP BY fil_lib

Reply

Marsh Posté le 26-04-2006 à 14:05:31    

Mais il t'arrive de faire des recherches???????? C'est du grand n'importe quoi là.
 

Code :
  1. SELECT fil_lib, sum(comd_valvn) AS sum_comd_valvn,
  2. sum(comd_vallogan) AS sum_comd_vallogan, sum(comd_valpart) AS sum_comd_valpart,
  3. sum(comd_valmarch) AS sum_comd_valmarch
  4. FROM commandes INNER JOIN concessions ON conc_cle=comd_concession
  5. INNER JOIN filiales ON fil_cle=conc_filiale
  6. WHERE fil_cle=$fil
  7. GROUP BY fil_lib


Message édité par cinocks le 26-04-2006 à 14:05:50

---------------
MZP est de retour
Reply

Marsh Posté le 26-04-2006 à 14:12:21    

OK merci , pour les recherches je te l'accorde mais je n'ai pas vraiment de site référence...
Si tu en as c'est cool...
 
Moi j'ai le manuel php et c'est tout.
Je n'ai pas de site avec des exemple de rédaction concrète comme ça

Reply

Marsh Posté le 26-04-2006 à 14:17:15    

et le site officiel, et les 500000 tutoriels sur le net, ils sont pour les chiens ?
Ne cherche pas un exemple précis de ce que tu veux faire ; Apprend à faire plutôt


Message édité par Djebel1 le 26-04-2006 à 14:17:42
Reply

Marsh Posté le 26-04-2006 à 14:26:03    

ok je te remerci de ton tact

Reply

Marsh Posté le 26-04-2006 à 14:42:33    

np je suis là pour ça ;)

Reply

Marsh Posté le 26-04-2006 à 15:14:59    

jenny50 a écrit :

OK merci , pour les recherches je te l'accorde mais je n'ai pas vraiment de site référence...
Si tu en as c'est cool...
 
Moi j'ai le manuel php et c'est tout.
Je n'ai pas de site avec des exemple de rédaction concrète comme ça


 
Tu te fous de moi. www.mysql.com peut-etre. Il faut lire un peu, faire le minimum d'effort.


---------------
MZP est de retour
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed