Problème de requète SQL

Résolu
Bonjour à tous

Je cherche dans mon modèle à créer une requète SQL permetant d'affichier pour chaque rayon le nombre de produits qu'ils contiennent, mais là je dois bien vous avouez que j'ai du mal :(

Voici comment cela se présente

Produit(Numro_Produit,libelle_Produit,#NumeroRayon)
Rayon(NumeroRayon,nom_rayon)

D'avance merci pour votre aide :)

5 réponses

  1. Disons que la clause GROUP BY c'est comme dire au moteur SQL : regroupe moi tous les enregistrements dont les champs qui suivent (sous-entendu la clause GROUP BY) sont tous identiques en une seule ligne/enregistrement . Bref pas de doublon. Par contre les fonctions de regroupement comme count() ou sum() opèrents bien sur l'ensemble des enregistrements identiques.
    C'est pourquoi elles n'apparaissent pas dans la clause GROUP BY : cela n'aurait pas vraiement de sens. On ne regroupe pas le fait de compter un nombre d'enregistrements tous identiques on affiche le total dans le cas de sum() ou le nombre de fois dans le cas de count() c'est tout.

    Est-ce un plus clair ?
    1. et bien que dire sauf ..... MERCI

      je vais de ce pas chercher la définition du GROUP BY, car c'est bien beau de le faire une fois mais si je sais pas le réutiliser...

      Bonne soirée et encore merci PhP ;-)
      1. Bonsoir

        Avec une jointure et une fonction de regroupement ca doit faire l'affaire

        Ce qui donne :

        SELECT Rayon.Numero, Rayon.nom_rayon, 
        count(Produit.Numro_Produit) as Nombre
        FROM Rayon left join Produit 
        ON Rayon.Numero = Produit.NumeroRayon
        GROUP BY 
        Rayon.Numero, Rayon.nom_rayon


        Le "left join" permet de retourner la valeur 0 pour les rayons vides.

        Si tu ne veux pas les rayons vides alors remplace le "left join" par un "inner join"

        Le champ Rayon.nom_rayon n'est pas indispensable : si tu n'en veux pas, supprime le dans les clauses select et group by

        Sous toute réserve bien sûr !

        @+