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 :

Doublon dans requête


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Doublon dans requête
    bonjour,

    j ai deux table:

    table2:

    userid|ventes
    hugo|100
    bruno|200
    hugo|300
    bruno|1000

    table3:

    userid|achats
    bruno|15
    hugo|7

    je cherche a renvoyer le montant des ventes et des achats par personne:

    j'ai fait cette requete:

    SELECT table2.userid,
    sum(table3.achats),
    sum(table2.ventes)
    FROM table2
    LEFT JOIN table3 ON table2.userid=table3.userid
    GROUP BY table2.userid

    Mais cela me compte en double les achats, et me renvoie:

    userid|sum(achats)|sum(ventes)
    bruno|30|1200
    hugo|14|400

    Savez vous ou est l'erreur??

    Par avance merci
    Cedric

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    il n'y a pas d'erreur vue que la requête fait exactement ce que tu lui demande,

    tu fait une jointure entre la table table2 et table 3 sur la colonne userid ce qui produit comme résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    userid  | ventes | achats
    bruno   | 15     | 100
    hugo    | 7      | 200
    bruno   | 15     | 300
    hugo    | 7      | 1000
    Tu lie chaque ligne de la table2 avec chaque ligne de la table 3 dont les colonne userid corresponde.

    Ensuite tu fait un regroupement sur le userid et fait la somme de la colonne vente et achats.

    Quel est le résultat que voulait tu à l'aide de ta requête ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    je voulais qu il me dise bruno a achete 15 et vendu 1200 et non Bruno a achete 30 et vendu 1200

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    bonsoir, qqn peut il m aider?

    merci ;-)

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Dans la table3 peut-il y avoir plusieurs ligne pour une même userid ?

    Si non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT table2.userid, table3.achats, sum(table2.ventes)
    FROM table2
    LEFT JOIN table3 ON table2.userid=table3.userid
    GROUP BY table2.userid, table3.achats
    Mais je pense que le problème viens surtout de la modélisation de la BDD.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    oui il peut y avoir plusieurs enregistrement effectivement...peut etre dois je utiliser une sous requete?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    j ai trouvé: ca marche avec une sous requete.

    j ai la table1:
    userid|achats
    hugo|2
    bruno|3
    hugo|5
    bruno|12

    je fais donc cette requete:

    SELECT b.userid,sum(b.ventes),c.hh
    FROM table2 b
    LEFT JOIN (SELECT a.userid,sum(a.achats) as hh
    FROM table1 a
    GROUP BY
    a.userid) c ON b.userid=c.userid
    GROUP BY b.userid,c.hh
    ;


    A+

Discussions similaires

  1. Eviter les doublons dans une requête.
    Par Smint dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/03/2017, 16h17
  2. Enlever doublon dans requête somme
    Par cedriclv dans le forum Langage SQL
    Réponses: 13
    Dernier message: 03/06/2013, 10h56
  3. doublon dans requête état de présences
    Par papagei2 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 06/02/2008, 13h38
  4. problème de doublon dans ma requête
    Par ildan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/06/2007, 17h05
  5. doublon dans requête
    Par zut94 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 31/08/2006, 15h13

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