Erreur dans la clause group by

wido05 -  
 Profil bloqué -
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 ++
Configuration: Windows XP
Safari 532.0

2 réponses

  1. fiu
     
    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
    1. wido05
       
      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
    2. Profil bloqué
       
      le champ du groupe by dois etre dans ton select !
      0
  2. kim
     
    Bonjour,

    Je suis face au même problème et j'aimerais savoir si tu as trouvé une astuce wido05.

    Merci
    0