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 :

requête avec la somme d'une colonne et un GROUP BY


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut requête avec la somme d'une colonne et un GROUP BY
    Bonjour,

    Je travaille sous Apache 2.2.4.

    Je dois afficher les informations de la table factures où l'id_factures se trouve dans une autre requête.

    Dans cette seconde requête, je demande de regrouper les enregistrements par id_factures et d'en faire la somme (somme_montant).

    Je dois extraire de ce tableau uniquement les sommes_montant qui sont égal à 10.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM factures WHERE id_factures IN
    	(SELECT id_factures, sum(montant) AS somme_montant FROM flux_financier WHERE somme_montant = 10 GROUP BY id_factures)
    Malheureusement la requête que je vous montre n'est pas correcte ...

    J'ai une erreur qui est renvoyée :

    Citation Envoyé par MySQL
    #1054 - Unknown column 'somme_montant' in 'where clause'
    D'avance merci pour vos réponses.



    xenos

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Points : 95
    Points
    95
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM factures F, (SELECT id_factures, sum(montant) AS somme_montant FROM flux_financier  GROUP BY id_factures) FL
    WHERE F.id_factures=FL.id_factures AND FL.somme_montant=10

    Essaye ca mais sans promesse

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 399
    Points
    28 399
    Par défaut
    Citation Envoyé par xenos Voir le message
    Je travaille sous Apache 2.2.4.
    Cette information n'est d'aucune utilité pour connaitre le SGBD que vous utilisez...

    En utilisant HAVING, ça fonctionnera mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * 
    FROM factures 
    WHERE id_factures IN
       ( SELECT id_factures
         FROM flux_financier 
         GROUP BY id_factures
         HAVING sum(montant) = 10 
       )
    Je vous encourage à consulter le Cours sur les Regroupements en SQL

  4. #4
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Merci pour vos réponses rapide sleigh et al1_24.

    Vos deux solutions fonctionnent parfaitement !

    Citation Envoyé par al1_24 Voir le message
    Cette information n'est d'aucune utilité pour connaitre le SGBD que vous utilisez...
    "Version de MySQL: 5.0.41-community-nt"

    Est-ce plus pertinent ?

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Points : 95
    Points
    95
    Par défaut
    "Version de MySQL: 5.0.41-community-nt"
    en effet

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 399
    Points
    28 399
    Par défaut
    Citation Envoyé par xenos Voir le message
    "Version de MySQL: 5.0.41-community-nt"

    Est-ce plus pertinent ?
    Tout à fait

  7. #7
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Décidément vous êtes des rapides !

    Merci pour votre aide !

    Bon développement à tous.

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

Discussions similaires

  1. Faire la somme d'une colonne dans la même requête
    Par logiciel_const dans le forum SQL
    Réponses: 23
    Dernier message: 26/10/2010, 09h47
  2. Somme d'une colonne (avec nombre de rangée variable)
    Par Berny77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2008, 23h30
  3. Réponses: 10
    Dernier message: 03/10/2006, 20h19
  4. Requête SELECT avec deux champs dans une colonne ??
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 08/06/2006, 10h41

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