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 :

Deux requêtes : additionner les résultats


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut Deux requêtes : additionner les résultats
    Bonjour, je suis débutant en sql
    je vous expose une partie de la bdd:Nom : labdd.png
Affichages : 343
Taille : 231,9 Ko

    et une première requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT nomPlat, idplat, count(nomPlat), count(idplat) FROM plat 
    INNER JOIN commande_plat ON fk_plat_idplat = idplat
    INNER JOIN commande ON idcommande = fk_commande_idcommande
    GROUP BY idplat


    pour les plats commandés directement à la carte ! Pour chaque plat, j'ai le nombre de fois où il a été servi/commandé
    résultat:
    Nom : premiere_requete.png
Affichages : 336
Taille : 155,7 Ko

    Une deuxième requète:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT nomPlat, idplat, count(nomPlat), count(idplat)  FROM plat 
    INNER JOIN plat_menu ON fk_plat_idplat = idplat
    INNER JOIN menu ON idmenu = fk_menu_idmenu
    INNER JOIN commande_menu ON idmenu = commande_menu.fk_menu_idmenu
    GROUP BY  idplat

    pour les plats consommés via un menu ( même résultat: le nombre de fois où le plat a été servi / commandé mais via un menu )

    résultat:
    Nom : deuxieme_requete.png
Affichages : 318
Taille : 60,0 Ko

    et je souhaiterais savoir pour chaque plat, combien de fois il a été servi/ consommé en tout ( menu + à la carte ) !
    c'est-à-dire que les rouleaux de printemps dans le résultat final, devraient avoir été consommés 9 fois en tout : (3 à la carte, 6 via le menu )
    Je dois pas être loin, mais pourtant , je n'ai aucune idée de comment faire !
    J'ai pensé à UNION, mais ça ne fera qu'afficher les résultats à la suite...

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    bonjour,

    basiquement, vous pouvez faire un UNION ALL de vos deux requêtes dans une sous requête, et faire un SUM sur le résultat du COUNT

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut
    Basiquement, c'est relatif !

    Je ne comprends pas la sous-requête:
    elle retourne un tableau avec tous les résultats, y compris les doublons !

    ce serait:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(count(nomPlat)) FROM (sous-requête)

    Mais je ne pense pas. De plus j'ai une erreur:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    #1248 - Every derived table must have its own alias
    Et tout ça commence à devenir un peu touffu pour moi !

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut
    Pour l'instant, j'ai fait une vue au lieu d'une sous-requête...
    et je tente
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select nomPlat, count(nomPlat) from touslesplats
    GROUP BY nomPlat

    touslesplats, la vue, contient 30 lignes: 23 plats et 7 doublons

    Le résultat de la requête me donne 23 lignes, mais les résultats de la colonne count(nomPlat) sont à 1 pour 16 lignes, et 2 pour 7 lignes ( les doublons )
    Je ne dois pas être loin de la solution...

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut
    Bon , ça y est, (j'ai compris la réponse !):
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT nomPlat, sum(lesplats) FROM touslesplats
    GROUP BY nomPlat, idplat

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/08/2016, 19h12
  2. Requête affichant les résultats de divers requetes
    Par nekro65 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 11/03/2009, 08h04
  3. [MySQL] Deux requêtes identiques et résultats différents
    Par iris15 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/10/2008, 14h30
  4. [2.0] Deux requêtes avec les mêmes paramètres
    Par alband85 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 07/07/2008, 19h28
  5. Requête sur les résultats d'une requête
    Par kiro57 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/10/2007, 17h48

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