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 :

Concaténation de tables


Sujet :

Access

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

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Concaténation de tables
    Bonjour,
    J'ai 2 tables et je voudrai insérer les enregistrements dans une 3° table.
    Exemple avec les noms des champs :
    Table 1 : N° facture, N° commande, Type, Article
    Table 2 : N° facture, Article, N° Client
    Table 3 : Concaténation des 2 : N° facture, N° commande, Type, Article, N° client.

    Comme j'ai beaucoup de champs, j'aimerai générer ma 3° table automatiquement (j'ai des requêtes de sélection pour mes 2 premières tables).
    Je n'ai pas à gérer les doublons car les N° de factures ne sont pas les mêmes entre la 1° et la 2° table.
    Y a t'il un moyen sans utiliser l'opérateur SQL UNION ?
    (j'ai cru comprendre que c'était lent et j'ai beaucoup d'enregistrements à traiter).
    Est-ce que quelq'un a une idée de requête ?

    Merci d'avance,

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Entre
    Table 1 : N° facture, N° commande, Type, Article
    Table 2 : N° facture, Article, N° Client
    Table 3 : Concaténation des 2 : N° facture, N° commande, Type, Article, N° client.
    et
    les N° de factures ne sont pas les mêmes entre la 1° et la 2° table
    , je ne comprends pas ce que tu veux faire.
    Pourrais-tu illustrer en prenant un enregistrement dans chacune des deux premières tables?

    A+

    PGZ

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

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Donc, pour mieux expliquer mon cas, voilci un exemple concret :
    table 1 : N° facture, N° Commande, Type, Article
    Table 1 : 1101,2000,RZK,Rondelle

    Table 2 : N° Facture, Article, N° Client
    Table 2 : 1102, Vis, 000004
    Et j'aimerai avoir une requête SQL qui me donne le résultat suivant :

    Table 3 : N° Facture, N° commande, Type, Article, N° client
    Table 3 : 1101,2000,RZK,RZK,Rondelle,
    Table 3 : 1102, , ,Vis, 000004
    Table1 et Table2 sont importés à partir de fichiers textes qui n'ont pas exactement la même structure. Est-ce que mon exemple est plus explicite ?

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Re,

    C'est beaucoup plus clair. On peut faire en SQL ou DAO.
    En SQL cela devrait ressembler à ça:
    1. Créer la table3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE tbl3(Clef AUTOINCREMENT, NumFacture LONG, ...)
    2. Copier la table 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO tbl3(NumFacture, ..., Article)
    SELECT [N° Facture], [N0 Commande], Type, Article FROM tbl1
    3. Copier table 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO tbl3(NumFacture, Article, NumClient)
    SELECT [N° Facture], Article, [N° Client] FROM tbl2
    Tu vois la manip?

    Bon courage,

    PGZ

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

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Merci pqz. Je voyais (à peu près) cette solution mais je me suis dit qu'il y avait peut-être un moyen "d'exporter" mes 2 tables dans la 3°. genre select... into table3. Pour être sur d'avoir tous les champs des 2 tables dans la 3° sans avoir à la paramétrer. Mais je crois que je vais me prendre la tête une bonne fois pour insérer mes champs à la mano, et opter pour ta solution. Encore merci.

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

Discussions similaires

  1. Concaténer deux tables
    Par sofien dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/07/2008, 15h35
  2. concaténer des tables à 2 colonnes verticalement
    Par stefsas dans le forum SAS Base
    Réponses: 1
    Dernier message: 28/05/2008, 17h16
  3. Concaténation de table de sortie SAS
    Par mamiche dans le forum SAS Base
    Réponses: 23
    Dernier message: 21/05/2008, 22h55
  4. Réponses: 2
    Dernier message: 12/05/2006, 08h35
  5. [SQL] Concaténation de table
    Par KikiWolf59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/09/2005, 18h56

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