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 :

Problème de jointure multiple


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème de jointure multiple
    Bonjour,

    J'ai passé 2 heures à tenter de trouver une solution que je n'ai malheureusement pas trouvée, alors un ptit coup de main ne serait pas de refus Merci d'avance.

    Je vous livre un exemple, où je n'arrive pas à écrire une requete qui fonctionne correctement.

    Voici mes 5 tables:
    - produit1(id_produit,nom,prixU)
    - produit2(id_produit,nom,prixU)
    - detail1(id_detail,id_produit,Q)
    - detail2(id_detail,id_produit,Q)
    - facutre (id_facture,...).

    Ce que je souhaiterai faire, c'est d'écrire une requêtre qui me permet de calculer la somme des détails (table détail1 + table détail2) pour un id_facture donné.
    D'habitude on a plutot un truc simple du genre une table produit, detail et facture et il suffit de faire une requete comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT SUM(p.prix*d.quantite)
    FROM produit p,detail d,facture f
    WHERE p.id=d.id_detail AND f.id_facture=d.id_facture
    GROUP BY f.id_facture
    Et ça marche à merveille.

    Mais si je suis ce principe pour mes 2 tables détails et bien cela ne fonctionne pas. Voici ce que je fais par exemple (ici je compte le nombre de lignes qui correspondent avec ma facture).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(d1.id_detail), COUNT (d2.id_detail)
    FROM detail1 d1, detail2 d2, facture f
    WHERE f.id_facture=d1.id_facture AND f.id_facture=d2.id_facture
    GROUP BY f.id_facture
    Alors qu'il y a 3 lignes correspondates dans ma table détail1 et 2 lignes dans ma table détail2, j'obtiens un résultat curieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    COUNT( d1.ligne ) | COUNT( d2.id_detail )  
    6 | 6
    J'ai tenté des variantes dans ma clause GROUP BY mais le problème n'a pas l'air d'être là (GROUP BY d1.id_detail etc). Donc voilà je ne sais pas comment faire pour obtenir un résultat logique de 3 | 2. Si j'arrive à faire ça, je n'aurai pas de mal à calculer les sommes des colonnes car le principe reste le même.

    J'espère avoir été clair.

  2. #2
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Peut-être une requete comme celle-ci résoudras ton probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select ID_FACTURE,sum(Q*PRIX) Total
    from (select ID_FACTURE,Q,PRIX
                 from DETAIL1 D,PRODUIT1 P
                 where D.ID_PRODUIT=P.ID_PRODUIT
          UNION
          select ID_FACTURE,Q,PRIX
                 from DETAIL2 D,PRODUIT2 P
                 where D.ID_PRODUIT=P.ID_PRODUIT)
    group by ID_FACTURE
    Si vous êtes libre, choisissez le Logiciel Libre.

Discussions similaires

  1. Réponses: 18
    Dernier message: 06/10/2009, 14h54
  2. Problème avec jointures multiples.
    Par Veritas5 dans le forum Développement
    Réponses: 3
    Dernier message: 05/06/2009, 15h42
  3. [SQL2005][TSQL]Problème de jointures multiples
    Par Veritas5 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2009, 17h04
  4. Problème Jointures multiples
    Par masseur dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/03/2008, 19h53
  5. problème requête à jointure multiple...
    Par Ricardo_Tubbs dans le forum Access
    Réponses: 6
    Dernier message: 09/02/2006, 16h45

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