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

Access Discussion :

Requête : Insert avec plusieurs tables


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Requête : Insert avec plusieurs tables
    Bonsoir,

    Je voudrais réaliser la requête suivante :

    Table NOM :
    Id Nom
    1 Martin
    2 Durand
    3 Dupond

    Table TAB1 :
    IdTab1 DateTab1 Val1 Val2
    1 01/05/2006 150 167
    1 02/05/2006 654 456
    2 01/05/2006 123 987

    Table TAB2 :
    IdTab2 DateTab2 Val3 Val4
    1 01/05/2006 670 867
    1 02/05/2006 9 10
    3 01/05/2006 10 30

    Table TAB3 :

    IdTab3 DateTab3 Val5 Val6
    1 02/05/2006 7 1
    3 01/05/2006 65 10

    Resultat requête (Par id et date) :
    Id Nom Date Val1 Val2 Val3 Val4 Val5 Val6
    1 Martin 01/05/2006 150 167 670 867 -- --
    1 Martin 02/05/2006 654 456 9 10 7 1
    2 Durand 01/05/2006 123 987 -- -- -- --
    3 Dupond 01/05/2006 -- -- 10 30 65 10

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je commencerai par créer un requête UNION
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT IdTab1 AS Id, DateTab1 As DateTab FROM TAB1 UNION
    SELECT IdTab2 AS Id, DateTab2 As DateTab FROM TAB2 UNION
    SELECT IdTab3 AS Id, DateTab3 As DateTab FROM TAB3
    appelons la sqTAB

    Puis une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NOM -- sqTAB---> TAB1
                ---> TAB2
                ---> TAB3
    Lien NOM -- sqTAB sur Id
    Lien gauche sqTAB --> TAB1 sur Id et DateTab
    Lien gauche sqTAB --> TAB2 sur Id et DateTab
    Lien gauche sqTAB --> TAB3 sur Id et DateTab

    Bon courage

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse. J'ai un souci lorsque je fais :

    Lien NOM -- sqTAB sur Id
    Lien gauche sqTAB --> TAB1 sur Id et DateTab
    Lien gauche sqTAB --> TAB2 sur Id et DateTab
    Lien gauche sqTAB --> TAB3 sur Id et DateTab

    message :
    Instruction SQL non éxécutée: Des jointures externes ambigues. pour forcer l'ordre d'éxécution des jointures en premier, créer une requête distincte qui exécute la première jointure, puis insérer cette requête dans votre instruction SQL.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Je n'ai pas le problème.
    Dans la requête en mode création, j'ajoute la table NOM, la requête sqTAB, les tables TAB1, TAB2, TAB3.
    Ensuite je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    - un joint                 NOM.id ---- sqTAB.id
     
    - un joint gauche        sqTAB.id ----> TAB1.id1
                        sqTAB.DateTab ----> TAB1.DateTab1
     
    - un joint gauche        sqTAB.id ----> TAB2.id2
                        sqTAB.DateTab ----> TAB2.DateTab2
     
    - un joint gauche        sqTAB.id ----> TAB3.id3
                        sqTAB.DateTab ----> TAB3.DateTab3

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    J'ai recommencé complétement ma requête, effectivement cela fonctionne.

    Merci beaucoup pour ta réponse.

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

Discussions similaires

  1. Limiter le nombre de requêtes insert sur plusieurs tables
    Par Crackerz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/06/2014, 17h56
  2. Requête SQL avec plusieurs tables
    Par salma.mathlouthi dans le forum Développement
    Réponses: 1
    Dernier message: 30/07/2013, 08h16
  3. Requête INSERT sur plusieurs tables
    Par sircus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/01/2009, 08h30
  4. Insertion dans plusieurs table avec un index commun
    Par irongomme dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/10/2007, 11h41
  5. Requête INSERT avec 2 requêtes sélection (2 tables)
    Par JiB@ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/02/2007, 16h31

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