Erreur dans la clause group by

Fermé
wido05 - 28 janv. 2010 à 01:36
 Profil bloqué - 28 mars 2011 à 16:50
Bonjour,
j'ai un petit problème avec la clause group by dans oracle j'ai une table accessoire (code_acc,libelle,prix,#code_type) moi je voulai grouper par code_type voila ce que je fait " select * from accessoire group by code_Acc , libelle_Acc , prix , code_typeAcc ; " mais rien ne change et quand je fait " select * from accessoire group by code_typeAcc ;" me retourne une erreur (n'est pas une expression de groupe) voilà je suis vraiment perdu et je veut que quelqu'un puisse m'aider et merci d'avance ++

2 réponses

Salut,

le group by sert pour des fonctions récapitulatives (sum, avg, min, max & count).
donc si tu veux A, B, C, SUM(D) le group by est adapté
si tu veux sum(nb), min(note), max(note), to_char(date_evt, 'yyyymm') le group by est adapté
si tu veux x, y, z le group by n'est pas adapté

le group by se demande avec
select expressions discriminantes, expressions récapitulatives
from tables
where prédicats
group by expressions discriminantes
ce dernier point est malheureusement obligatoire : tout ce qui n'est pas récapitulatif est discriminant et doit donc figurer dans le group by.

dans ta requête, tes attributs d'articles n'étant pas récapitulatifs, ils doivent figurer dans le group by... mais du coup, elle perd tu l'intérêt que tu espérais
0
merci fiu tout est clair malheureusement quand je me fait figurer tout les champs la clause group by devient sans rôle et ça sert à rien de l'ajouter pourtant moi j veut afficher tous les champs listé en haut groupés par type !! en tout cas grand merci pour ta réponse frère fiu ++
0
Profil bloqué
28 mars 2011 à 16:50
le champ du groupe by dois etre dans ton select !
0