Doublons requete 3 tables
unmaxdemily
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Hello,
Je n'arrive pas à jointurer trois tables entre elles, ça me donne systématiquement des doublons. Pour faire simple, voici mes trois tables :
Commande :
cde_id | article | montant
10 | 100 | 50€
10 | 200| 10€
retour_cde :
cde_id | retour_id | date
10 | A | 1-nov
10 | B | 4-nov
retour:
retour_id | article | montant
A | 100 | 10€
A | 200 | 5€
B | 100 | 15€
B | 200 | 5€
il faut que j'enlève les montants de retour à mes commandes, mais avec ma requête j'obtiens systématiquement des doublons, je voudrais passer par une seule requête (avec deux requêtes, pas de problème)
requête :
select commande.cde_id, commande.article, sum(commande.montant)-sum(retour.montant)
from commande, retour_cde, retour
where commande.cde_id = retour_cde.cde_id
and retour_cde.retour_id = retour.retour_id and commande.article = retour.article
Merci de votre aide
Emily
Je n'arrive pas à jointurer trois tables entre elles, ça me donne systématiquement des doublons. Pour faire simple, voici mes trois tables :
Commande :
cde_id | article | montant
10 | 100 | 50€
10 | 200| 10€
retour_cde :
cde_id | retour_id | date
10 | A | 1-nov
10 | B | 4-nov
retour:
retour_id | article | montant
A | 100 | 10€
A | 200 | 5€
B | 100 | 15€
B | 200 | 5€
il faut que j'enlève les montants de retour à mes commandes, mais avec ma requête j'obtiens systématiquement des doublons, je voudrais passer par une seule requête (avec deux requêtes, pas de problème)
requête :
select commande.cde_id, commande.article, sum(commande.montant)-sum(retour.montant)
from commande, retour_cde, retour
where commande.cde_id = retour_cde.cde_id
and retour_cde.retour_id = retour.retour_id and commande.article = retour.article
Merci de votre aide
Emily
A voir également:
- Doublons requete 3 tables
- Ai suite 3 - Télécharger - Optimisation
- Doublons photos - Guide
- Tables des matières word - Guide
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
1 réponse
Bonjour,
Il est surprenant d'utiliser des SUM sans utiliser un GROUP BY dans ce contexte.
Je peux te suggérer la requête suivante :
Xavier
Il est surprenant d'utiliser des SUM sans utiliser un GROUP BY dans ce contexte.
Je peux te suggérer la requête suivante :
SELECT c.cde_id, c.article, SUM(c.montant)-SUM(COALESCE(r.montant, 0)) FROM commande c LEFT OUTER JOIN retour_cde rc ON rc.cde_id = c.cde_id LEFT OUTER JOIN retour r ON r.retour_id = rc.retour_id AND r.article = c.article GROUP BY c.cde_id, c.article ORDER BY c.cde_id, c.article
Xavier
merci pour ton aide xavier, mais malheureusement, les données sont toujours doublées.
Comme la commande "10" est présente deux fois dans ma table retour_cde, les données sont multipliées par 2.
La requête, telle quelle est, doit donner une ligne par commande ET par article.
Ce n'est pas ce que tu veux ?
Peux-tu me donner un exemple de résultat qui ne te va pas, et le résultat que tu souhaiterais ?
Xavier