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 :

Problème avec requête JOIN


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème avec requête JOIN
    Bonjour, j'ai un problème sur une requête utilisant JOIN

    J'ai 5 tables differentes:

    REVISION, WAGONS, COMPOSITION, BF, CONTRAT

    Je cherche à connaitre le nombre de km parcuru par un wagon depuis sa dernière révision.
    les km se trouvent dans la table BF réliée à WAGON par l'intermédiare de COMPOSITION.

    Mon problème est le suivant:
    ma requete fonctionne lorsqu'il n'y a qu'une seule entrée dans la Table REVISION pour un wagon donnée.
    dès lors que j'ajoute une nouvelle entrée (une date plus récente) ma requete ajoute
    le nombre de km supérieur à la premiere entrée et le nombre de km supérieur à la deuxième.

    Comment faire pour qu'il ne m'indique 'que' le nombre de km supérieur à la date de révision la plus récente?

    Voici ma requete:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT w.id AS id, MAX(r.date) AS date, SUM(b.km) AS km
    	FROM `wagons` w
    		JOIN `revision` r
    		ON w.id = r.id_wagon
    		JOIN `composition` c
    		ON w.id = c.id_wagons
    		JOIN `bf` b
    		ON c.id_bf = b.id
    	WHERE b.date_bf > date AND b.id_contrat = ?
    GROUP BY w.id

    Merci beacoup pour votre aide j'avoue que je sèche depuis des heures.....

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    si je comprend bien tu as besoin de quelque chose


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT w.id AS id, last_revision AS date, SUM(b.km) AS km
    	FROM `wagons` w
    		LEFT JOIN
    ( 
    SELECT MAX(date)  as last_revision, r1.id_wagon
    FROM `revision` as r1
    GROUP BY r1.id_wagon
    ) as r 
    		ON w.id = r.id_wagon
    		LEFT JOIN `composition` c
    		ON w.id = c.id_wagons
    		LEFT JOIN `bf` b
    		ON c.id_bf = b.id
    	WHERE b.date_bf > last_revision
    GROUP BY w.id
    si ya quelqu'un qui fait du sql standard, il va me tuer, mais je prends le risque d'utiliser des fonctionnalités d'agrégat de mysql.

    pis ya un truc qui me titille , je suis sur qu'on peut faire un truc plus simple avec HAVING, mais bon, je le manipule pas assez pour faire comme ça de tête.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup gene69 c'est exactement ce que je cherchais!!!
    ça va m'aider beaucoup pour les futures requêtes que j'aurais à effectuer!
    Encore Merci

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

Discussions similaires

  1. Problèmes avec Requêtes d'extraction
    Par NoBru dans le forum Access
    Réponses: 3
    Dernier message: 03/06/2006, 15h25
  2. Problème avec requête ajout
    Par teffal dans le forum Access
    Réponses: 3
    Dernier message: 29/04/2006, 16h41
  3. Problème avec requête ajout
    Par mitnick32 dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2006, 18h02
  4. [VB6] Problème avec requête Update
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2006, 03h40
  5. [Oracle] problème avec INNER JOIN
    Par Philofish dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/09/2005, 10h20

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