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 et SQL. Discussion :

Croisement de deux tables avec SUM et sans doublon


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Croisement de deux tables avec SUM et sans doublon
    Bonjour,

    je cherche à recouper des informations provenant de deux tables. Pour illustrer mon problème, prenons ces deux tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table Commandes ( Fournisseur, Montant commande )
    Table Factures ( Fournisseur, Montant facture )
    Dans chacune des deux tables, il peut y avoir aucun, un ou plusieurs montant par fournisseur, tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Fournisseur | Commande      Fournisseur | Facture
    ------------+---------      ------------+--------
    Truc        |    1000       Truc        |     250
    Machin      |    2000       Pouet       |     100
    Truc        |     500       Pouet       |     100
    Pouet       |    1000       Truc        |     500
    Je cherche à obtenir le résultat suivant, en 1 seule requête SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Fournisseur | Commande | Facture
    ------------+----------+--------
    Truc        |    1500  |     750
    Machin      |    2000  |       0
    Pouet       |    1000  |     200
    Où les champs Commande et Facture sont des sommes (SUM).

    En réalisant une jointure entre les deux tables, avec un regroupement et une somme, on obtient des doublons d'un côté ou de l'autre, et donc des résultats complétement faux.

    Si vous avez une idée.

    Merci.
    "Java c'est bien", Cédric Wemmert

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Je vais faire compliqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select NomFournisseur, Sum(MtCommande) as Totalcommande, Sum(MtFacture) as TotalFacture From (Select Fournisseur as NomFournisseur, [Montant Commande] As MtCommande, 0 as Mtfacture From Commandes UNION Select Fournisseur as NomFournisseur, 0 As MtCommande, [Montant Facture] as Mtfacture From Factures)
    Amicalement

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Exactement ce qu'il me fallait, j'ai juste ajouté les GROUP BY aux bons endroits. Voilà le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT NomFournisseur, Sum(MtCommande) AS Totalcommande, Sum(MtFacture) AS TotalFacture
    FROM (SELECT Fournisseur AS NomFournisseur, [Montant Commande] AS MtCommande, 0 AS Mtfacture
          FROM Commandes GROUP BY Fournisseur
          UNION
          SELECT Fournisseur AS NomFournisseur, 0 AS MtCommande, [Montant Facture] AS Mtfacture
          FROM Factures GROUP BY Fournisseur )
    GROUP BY NomFournisseur
    ;
    Merci pour la solution
    "Java c'est bien", Cédric Wemmert

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

Discussions similaires

  1. requete deux tables avec sum erreur calcul
    Par letel dans le forum Requêtes
    Réponses: 12
    Dernier message: 15/09/2010, 08h28
  2. requête croisement de deux tables + sum
    Par alibi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/09/2009, 15h42
  3. Lister avec croisement entre deux tables
    Par wehtam dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/01/2008, 23h10
  4. Réponses: 7
    Dernier message: 14/02/2006, 10h33
  5. Croisement d'une table avec elle même
    Par lelapin dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/09/2005, 07h44

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