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

Bases de données Delphi Discussion :

Rassembler plusieurs tables dans une DBGrid


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut Rassembler plusieurs tables dans une DBGrid
    Bonjour

    je voudrais rassembler plusieurs tables dans une DBGrid à l'aide d'une ADOQuery.

    donc j'ai 2 tables:

    Table1: GPS

    Champ1:Time
    Champ2:Speed

    Table2: EngineP

    Champ1:Time
    Champ2:Consumption
    Champ3:LoadFactor

    Je voudrais récupérer par l'ADOQuery tous les champs (5) des deux tables avec comme condition que Time soit identique.
    Est ce possible et comment?

    Merci beaucoup

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    je pense à ça mais faudrait vérifier :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select * From taTable1, taTable2
    where Table1.Time = Table2.Champ.Time

    Bonne chance.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut
    Parfait si j'avais su que c'était aussi simple

    Merci beaucoup

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Cette forme-ci est plus dans la norme SQL.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT 
      G.TIME, G.SPEED, E.CONSUMPTION, E.LOADFACTOR
    FROM
      GPS AS G INNER JOIN ENGINEP AS E
      ON G.TIME = E.TIME
    ORDER BY
      G.TIME;

    @+

  5. #5
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut
    Et si maintenant je veux vérifier en plus qu'un champ supplémentaire de chaque table doit avoir une valeur choisie?

    Table1 GPS

    champs3:NumTest

    Table2 EngineP

    Champs4:NumTest

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Modifie la jointure ainsi:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM
      GPS AS G INNER JOIN ENGINEP AS E
      ON G.TIME = E.TIME and G.NUMTEST = E.NUMTEST

    @+

  7. #7
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
       SELECT G.TIME, G.SPEED, E.CONSUMPTION, E.LOADFACTOR
          FROM GPS AS G 
    LEFT JOIN ENGINEP AS E ON G.TIME = E.TIME AND G.NUMTEST = E.NUMTEST
      /*  WHERE ???? */
     ORDER BY G.TIME
    Avec une jointure gauche tu t'exposes moins au risque de ne pas certains enregistrements.
    Surtout sur une jointure par un champ heure.

  8. #8
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut
    Génial un petit dernier dites le si je suis trop lourd lol

    Passons a 3 tables...

    Table1 GPS

    Champs: Time,Speed,NumTest

    Table2 EngineP

    Champs: Time,Speed,NumTest

    Table3 EngineS

    Champs: Time,Speed,NumTest

    Basé sur le même résonnement, c'est a dire reprendre les enregistrements possédant le même Time (basé sur GPS) et possédant un NumTest choisi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT GPS.Time,GPS.Speed,EngineP.Speed,EngineS.Speed 
    FROM GPS INNER JOIN EngineP 
    ON GPS.Time=EngineP.Time 
    AND GPS.NumTest=EngineP.NumTest=x
    Ceci devrais fonctionner pour 2 tables mais je dois faire une erreur

    Ensuite pour 3 tables c'est encore plus dure ...

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

Discussions similaires

  1. delphi: intégration 2 table dans une DBgrid
    Par bsamine dans le forum Composants VCL
    Réponses: 3
    Dernier message: 08/10/2009, 11h13
  2. Réponses: 5
    Dernier message: 12/02/2009, 09h59
  3. Groupement de plusieurs tables dans une seule
    Par kemiolek dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/06/2008, 17h27
  4. Copie de colonnes de plusieures tables dans une autre table
    Par PPLILH2008 dans le forum Modélisation
    Réponses: 3
    Dernier message: 04/06/2008, 15h09
  5. plusieurs tables dans une seule table
    Par scully2501 dans le forum Access
    Réponses: 1
    Dernier message: 10/10/2005, 09h19

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