Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2008, 00h46   #1
Membre du Club
 
Inscription : janvier 2004
Messages : 139
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 139
Points : 44
Points : 44
Par défaut problème choix d'une jointure dans requête sur plusieurs tables

bonjour,

étant assez débutant en mysql, je dois faire une requête sur plusieurs tables mais je ne sais pas vraiment quelle jointure utiliser.

je dois comptabiliser le nombre de marchandise livrée par un chauffeur.

les marchandises se retrouvent dans une commande.
La tournée de la livraison comprend plusieurs commandes et est effectuée par un chauffeur.

j'arrive bien à comptabiliser tous mes produits livrés (par tous les chauffeurs) avec la requête suivante :

Code :
1
2
3
4
5
6
7
 
SELECT  boncomporte.refarticle, article.NOMARTICLE_FR, SUM(boncomporte.quantite) AS Somme
FROM BON
INNER JOIN BONCOMPORTE USING(REFBON)
INNER JOIN ARTICLE USING(REFARTICLE)
GROUP BY refarticle
ORDER BY Somme DESC

voici les tables que je dois utiliser pour calculer la somme des marchandises livrées par tel ou tel chauffeur :

Table bon : refbon
Table boncomporte : refbon, refarticle, quantite
Table article : refarticle, nomarticle_FR
Table feuilleroute : refroute, refchauffeur
Table feuilleroutecomporte : refroute, refbon
Table chauffeur : refchauffeur, refroute


merci de vos éclairsissements.
tomguiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2008, 14h28   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 423
Points : 6 423
Bonjour,

Curieux que dans le schéma décrit, les tables feuilleroute et chauffeur soient composées des mêmes champs . Pourquoi refroute dans chauffeur ?
Sinon, voilà une requête qui doit faire ce que tu recherches (le nombre d'articles livrés par chauffeur) :
Code :
1
2
3
4
5
6
SELECT c.refchauffeur, sum(bc.quantite)
FROM chauffeur c
INNER JOIN feuilleroute fr ON c.refchauffeur = fr.refchauffeur
INNER JOIN feuilleroutecomporte frc ON fr.refroute = frc.refroute
INNER JOIN boncomporte bc ON frc.refbon = bc.refbon
GROUP BY c.refchauffeur
Si il faut le détail par article pour chaque chauffeur, il faut ajouter bc.refarticle dans la ligne de sélection et dans le group by (ou alors, refaire une jointure sur article pour remplacer refarticle par le nom de l'article).

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2008, 14h57   #3
Membre du Club
 
Inscription : janvier 2004
Messages : 139
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 139
Points : 44
Points : 44
excuses-moi, en effet il y avait une erreur dans mon explication.

dans la table chauffeur : refchauffeur, nomchauffeur.

Je vais un peu essayer et voir ce que cela donne.

merci !
tomguiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h55.


 
 
 
 
Partenaires

Hébergement Web