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 :

Calcul du total des commandes effecutées par client


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut Calcul du total des commandes effecutées par client
    Bonjour je n'arrives pas effectuer une requete qui me semblait pourtant simple à la base :

    j'ai une table Client dans laquelle j'ai une colone id_client et une colone montant_commande. Je souhaiterais grouper toutes les commandes effectuées par chaque client et calculer le total par client.

    Merci d'avance

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    il te faut certainement utiliser un sum() et la clause group by
    qu'as tu essayé? ou bloques tu?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Salut merci de ta rapidité !

    j'ai testé plein de truc le dernier etant ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_client, (SELECT compte_client.montant FROM compte_client) AS Montant 
    FROM compte_client
    GROUP BY (SELECT DISTINCT compte_client.id_client FROM compte_client)
    HAVING SUM(compte_client.montant)

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    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 814
    Billets dans le blog
    14
    Par défaut
    Pourquoi compliquer autant ?

    Tu exprimes très bien le besoin en français :
    Je souhaiterais grouper toutes les commandes effectuées par chaque client et calculer le total par client.
    Ce qui peut se traduire par :
    Je veux sélectionner chaque client et la somme des montants de son compte client présents dans la table compte_client.

    En SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT id_client, SUM(montant) AS MontantTotal
    FROM compte_client
    Pour pouvoir faire cette opération de somme pour chaque client, il faut regrouper les lignes de la table par client. Ce qui donne en SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id_client, SUM(montant) AS MontantTotal
    FROM compte_client
    GROUP BY id_client
    Ce n'est pas plus compliqué que ça !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Effectivement c'est plus clair comme ça et ça marche... Je ne savais pas que je pouvais utiliser SUM sans qu'elle soit à la suite d'un HAVING ou d'un SELECT..

    Je debute

    Merci en tout cas pour votre réactivité à tous les 2 !

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    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 814
    Billets dans le blog
    14
    Par défaut
    HAVING est une clause qui restreint les résultats des calculs.
    Si tu veux seulement les clients qui ont une somme de montants supérieure à 100 000, tu ajoutes HAVING à la requête précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_client, SUM(montant) AS MontantTotal
    FROM compte_client
    GROUP BY id_client
    HAVING SUM(montant) > 100 000
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Calculer le total des versements
    Par moh_oracle dans le forum Débuter
    Réponses: 25
    Dernier message: 07/02/2011, 14h40
  2. [MySQL] Récupération de l'ensemble des commandes de mon client
    Par moiameme dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/06/2008, 15h12
  3. [MySQL] Calcul du total des ventes et des consommations
    Par dubitoph dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/10/2007, 17h16
  4. [VBA-A] calcul du total des heures d'une période
    Par aibar dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/06/2006, 00h16

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