IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

COUNT(*) sur une sous requete


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut COUNT(*) sur une sous requete
    Bonjour,
    Je n'arrive pas à écrire une requete sql qui récupère le résultat d'une sous requête.

    Prenons par exemple les tables
    categories(id, c_nom)
    produit(id, idcategorie#, p_nom, prix)

    Je souhaite lister les catégories en ajoutant une colonne qui correspond au nombre de produits qui appartiennent à chaque catégorie.

    Pour obtenir par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IdCat  |  NomCategorie  |  NbProduit
    ------------------------------------
    1         Fromage                 5
    Quelle est la meilleure manière pour le faire ?


    Merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Il faut faire une jointure externe.

    Qu'as-tu essayé comme requête ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Jointure externe comme dit Cinephil pour avoir toutes les catégories y compris celles qui n'ont pas de produit et utilisation des mots clé group by et count :
    http://sqlpro.developpez.com/cours/sqlaz/ensembles/
    A+
    Soazig

  4. #4
    Membre actif Avatar de sofiane_bfm007
    Profil pro
    Consultant Décisionnel
    Inscrit en
    Mai 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Décisionnel

    Informations forums :
    Inscription : Mai 2008
    Messages : 261
    Points : 242
    Points
    242
    Par défaut
    Bon je te propose 2 solution et cela selon tes besoin :
    Si tu veux retourner toutes les catégories même celle qui n'ont pas de produit alors tu as ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT 
         c.id as IdCat, c.c_nom as NomCategorie, (select COUNT(p.id) from produit p where p.idcategorie=c.id group by p.idcategorie) as NbProduit
      FROM produit p
    RIGHT OUTER JOIN categories c
    on p.idcategorie=c.id
    group by 
    c.id, c.c_nom
    si non si tu veux seulement les catégories qui possèdent au moins un produit, alors tu as ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT 
          p.idcategorie as IdCat, c.c_nom as NomCategorie, COUNT(p.id)as NbProduit
     
      FROM produit p, categories c
    where p.idcategorie=c.id
    group by p.idcategorie, 
    c.c_nom
    Pour les jointure externe j'ai utilisé un moteur de base de données Sql Server 2005

    J'espère je je répond bien a ton besoin !!!!
    Bon courage

Discussions similaires

  1. Filtrer sur le resultat d'une sous-requete
    Par MinsK dans le forum Requêtes
    Réponses: 7
    Dernier message: 26/11/2009, 16h45
  2. Question sur une sous requete
    Par Jean-Pierre49 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/03/2008, 12h19
  3. Somme et trie sur une sous requete
    Par shinrei dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/05/2006, 10h45
  4. Réponses: 15
    Dernier message: 14/04/2006, 15h34
  5. Réponses: 9
    Dernier message: 18/08/2005, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo