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

Requêtes MySQL Discussion :

Besoin d'aide sur une requête SQL


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Besoin d'aide sur une requête SQL
    Bonjour tout le monde ,
    J'ai deux tables comme suivant :
    Article(id_article,intitulé_article)
    Produit(id_produit,id_article,Emplacement)

    Je veux afficher le nombre de produits de chaque article dans chaque emplacement (j'ai 3 emplacements possibles).

    Le résultat:
    article emp1 emp2 emp3 total
    a1 10 5 0 15

    merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Et donc, c'est quoi le problème ?

    Tu as bien entendu essayé d'écrire la requête avant de poster ton message ?

    Nos boules de cristal étant en panne, nous ne pouvons pas savoir quelle difficulté tu rencontres.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    La requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT article.id_article,intitulé_article,id_produit,produit.id_article,COUNT( intitulé_article) AS total
    FROM  Produit , Article  WHERE Produit.id_article  = Article.id_article
    GROUP BY intitulé_article";

    Ça permet d'afficher nombre de produits de chaque article. Je veux détailler (nombre d'articles par emplacement aussi).

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    1) Les jointures s'écrivent depuis 20 ans avec l'opérateur JOIN ; il serait temps de s'y mettre !

    2) L'utilisation d'alias pour les tables est fortement recommandé dès qu'il y a plus d'une table dans la requête. Cela facilite l'écriture et la lecture de celle-ci. Il faut ensuite utiliser systématiquement ces alias devant chaque colonne nommée pour savoir facilement de quelle table elle vient.

    3) Toutes les colonnes du SELECT ne faisant pas l'objet d'une fonction de groupage doivent figurer dans le GROUP BY sous peine de voir des valeurs aléatoires pour les colonnes manquantes.
    En l'occurrence, la valeur donnée par votre requête pour id_produit est purement aléatoire.

    4) Vous voulez compter les produits par article mais dans votre requête vous comptez les "intitule_article" !

    5)
    je veut afficher le nombre de produit de chaque article dans chaque emplacement (j'ai 3 emplacements possibles)

    le resultat:
    article emp1 emp2 emp3 total
    a1 10 5 0 15
    La présentation des données est le boulot du logiciel applicatif qui utilise la BDD.
    La requête la plus simple est donc celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT a.id_article, a.intitulé_article,
    	p.Emplacement,
    	COUNT(p.id_produit) AS total
    FROM Article a
    INNER JOIN Produit p ON p.id_article = a.id_article
    GROUP BY a.id_article, a.intitulé_article, p.Emplacement
    ORDER BY a.id_article, p.Emplacement

Discussions similaires

  1. Besoin d'aide sur une requête SQL
    Par Khyinn dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/07/2010, 21h23
  2. [SQL] Besoin d'aide sur une requête
    Par moonboot dans le forum Oracle
    Réponses: 1
    Dernier message: 01/08/2006, 15h56
  3. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  4. Réponses: 1
    Dernier message: 03/08/2005, 11h41

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