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+Groupy


Sujet :

Langage SQL

  1. #1
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut Problème de Jointure+Groupy
    Bonjour

    J'ai les tables suivantes

    T_Vehicule(#idVehicule,numVehicule,...)
    T_Prise(#idPrise,idVehicule,DatePrise, ...)

    Je veux une reqûete sql qui m'affiche pour chaque date l'ensemble des véhicules qui n'ont pas fait de prise.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 396
    Points
    28 396
    Par défaut
    Il te manque une table des dates...

    On peut toujours la simuler en extrayant la liste des dates de T_Prise.
    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    D.Jour
        ,    V.idVehicule
    from    (    select    DatePrise    as Jour
                from    T_Prise    
                group by DatePrise
            )    as D
        cross join
            T_Vehicule    as V
    where    not exists    
            (    select    1
                from    T_Prise    as P
                where    P.DatePrise = D.Jour
                    and    P.idVehicule = V.idVehicule
            )
    ;
    Seul problème, s'il y a une date à laquelle aucune voiture du parc n'a été prise, elle ne ressortira pas !

  3. #3
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Ca marche, mais je souhaiterais faire le regroupement sur la date au lieu de le faire le véhicule.

    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    D.Jour, V.numVehicule
     
    FROM    (    SELECT    DatePrise    AS Jour
                FROM    T_PriseCarburant    
                GROUP BY DatePrise
            )    AS D
        CROSS JOIN
            T_Vehicule    AS V
    WHERE    NOT EXISTS    
            (    SELECT    1
                FROM    T_PriseCarburant    AS P
                WHERE    P.DatePrise = D.Jour
                    AND    P.idVehicule = V.idVehicule
            )
    Group by D.Jour,V.NumVehicule
    j'ai ajouté un group by mais ça n'a pas d'effet

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 396
    Points
    28 396
    Par défaut
    Citation Envoyé par Le Pharaon
    Je veux une reqûete sql qui m'affiche pour chaque date l'ensemble des véhicules qui n'ont pas fait de prise.
    C'est bien ce que fait la requête...

    Citation Envoyé par Le Pharaon
    Ca marche, mais je souhaiterais faire le regroupement sur la date au lieu de le faire le véhicule.
    Je ne comprends plus ce que tu veux faire

  5. #5
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Je veux par exemple :

    12/10/2006 1
    12/10/2006 2
    12/10/2006 3
    12/10/2006 4

    13/10/2006 1
    13/10/2006 2
    13/10/2006 4

    Au lieu de

    12/10/2006 1
    13/10/2006 1

    12/10/2006 4
    13/10/2006 4

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 396
    Points
    28 396
    Par défaut
    Tu souhaites donc ordonner tes résultats par date et par véhicule...
    Ajoute simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ORDER BY D.Jour,V.NumVehicule

  7. #7
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Excellent !

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

Discussions similaires

  1. Problème de jointure de tables
    Par AurelBUD dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2005, 16h27
  2. Probléme de jointure
    Par Ajrarn dans le forum Langage SQL
    Réponses: 14
    Dernier message: 24/02/2005, 14h57
  3. Vraisemblable problème de jointure
    Par pimousse76 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 15h34
  4. [MS Access] Problème de jointure
    Par Erakis dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/02/2005, 21h15
  5. Problème de jointure ?!
    Par ebaynaud dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/11/2004, 11h27

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