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 et SQL. Discussion :

Fusion de plusieurs tables


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut Fusion de plusieurs tables
    Bonjour ,

    je n arrive pas a creer une table qui soit en fait la réunion de 10 autres tables.
    Celles ci ont exactement les memes champs.

    Existe t'il un code ou requête capable de faire ca ??

    Merci d'avance

  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 768
    Points
    7 768
    Par défaut
    Bonjour,

    On peut le faire avec une requête UNION
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT chp1, chp2, chp3 FROM Table1
    UNION
    SELECT chp1, chp2, chp3 FROM Table2
    UNION
    SELECT chp1, chp2, chp3 FROM Table3
    A+

  3. #3
    Membre averti Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 499
    Points : 304
    Points
    304
    Par défaut
    salut
    astuce convertit tes 10 table au faurmat excel traite dans une seul feuille puis importe ton fichier excel ton ta base
    A+

  4. #4
    Membre averti Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 499
    Points : 304
    Points
    304
    Par défaut
    salut
    LedZeppII avec 10 tables ca marches car j'ai jamais testé

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Le tout est de savoir si tu veux une nouvelle table ou simplement pourvoir consulter les dix tables en même temps sans les unir dans une seule.

    Ce qu'on t'a proposé plus haut est un requête union, qui va te donner les enregistrement des toutes tes tables ensembles mais dans leurs tables d'origine.
    Tu ne peux pas modifier ces enregistrements.

    Il existe des requêtes qui permettent d'ajouter les enregistrements dans une autre table. dans ce cas, tous les enregistrements se retrouvent dans la même table et il est alors possible de les manipuler et les modifier.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Super cool, vais essayer ca dessuite,
    En fait je ne veux pas les modifier juste avoir une table virtuelle en quelques sorte
    Vais essayer la 1er soluce et je vous tiens au courant

    merci encore

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Ok j'ai tester la soluce c'est presque ce que je désirai, effectivement je n'ai pas besoin de modifier les valeurs,
    mais la table finale doit bien ce creer avec la possibilité au lancement de la requete,
    - soit de vider la table finale,
    - soit effacer la table finale existante et la recréer,
    car les valeurs doivent être mise a jour en permanence.

    Table 1; table 2, table 3 etc .... sont des table liées et proviennent d'une base oracle.

    Ou pe etre est il possible de pointer directement sur les tables oracle sans les liées et recuperer dans une table tous les champs avec leur valeurs...

    Merci encore

  8. #8
    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 768
    Points
    7 768
    Par défaut
    Bonsoir,

    Utilise la requête UNION que tu as créée comme source d'une requête création de table.

    Ou peut-être est il possible de pointer directement sur les tables oracle sans les liées et récuperer dans une table tous les champs avec leur valeurs...
    Possible .
    - Créer une requête SQL Direct.
    - Définir la chaîne de connexion ODBC dans les propriétés de la requête SQL Direct.
    - Ecrire la requête UNION en SQL Oracle
    - Créer une requête création de table qui utilise la requête SQL Direct comme source.
    L'avantage c'est que c'est le serveur Oracle qui fait l'union entre les tables.

    A+

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Pour la fusion des table c'est ok, je suis passer par une requete INSERT coupler avec requete UNION ca fonctionne tres bien, j'ai juste fait un macro qui lance
    la requête suppression des valeur de la table, puis ajout des valeurs avec la requete UNION.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par LedZeppII
    Bonsoir,

    Utilise la requête UNION que tu as créée comme source d'une requête création de table.

    Possible .
    - Créer une requête SQL Direct.
    - Définir la chaîne de connexion ODBC dans les propriétés de la requête SQL Direct.
    - Ecrire la requête UNION en SQL Oracle
    - Créer une requête création de table qui utilise la requête SQL Direct comme source.
    L'avantage c'est que c'est le serveur Oracle qui fait l'union entre les tables.

    A+

    Cette solution me plait encore plus reste a la dévellopper, je ne suis pas un expert lolllll.
    Si tu as des exemples de code ou autres a me fournir je suis preneur.

    Super merci pour ton aide

  11. #11
    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 768
    Points
    7 768
    Par défaut
    Je ne suis pas un expert Oracle mais je peux te guider dans la création d'une requête SQL Direct.

    - Menu Principal : Insertion -> Requête
    - Dans l'assistant choisir "Mode Création"
    - cliquer "Fermer" sans ajouter de table.

    Modification de la requête en requête SQL Direct
    - Menu Principal : Requête -> Spécifique SQL -> SQL Direct

    Chaîne de connexion
    - Menu Principal : Affichage -> Propriétés
    - Propriété "Chaîne de connexion ODBC" :
    On met quelque chose comme ça :
    ODBC;DATABASE=database;UID=user;PWD=password;DSN=datasourcename;
    en gras les mots clés et en pourpre les paramètres.
    Si tu as lié des tables, tu dois déjà avoir un DSN (Source de données).

    Tu peux voir les chaînes de connexion des tables liées avec une requête (requête Access)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Connect, Name, ForeignName, Type
    FROM MSysObjects
    WHERE (((MSysObjects.Connect) Is Not Null));
    Voir la colonne Connect.

    Pour tester la requête SQL Direct commence par une instruction simple
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 'Test Connexion' "TEST" FROM DUAL
    Si elle renvoie quelque chose la chaîne de connexion est bonne.
    Tu peux écrire dans la requête SQL Direct le SQL complet avec les UNION.
    La requête sera exécutée par le serveur Oracle. Il faut donc que le SQL de cette dernière soit conforme à la syntaxe Oracle.
    Par exemple si l'utilisateur de la connexion n'est pas le même que celui qui possède la table derrière le FROM,
    il se peut que tu doive écrire : FROM NomUtilisateur.NomTable au lieu de FROM NomTable .

    Bon courage

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    merci beaucoup je pense que ca devrais le faire .
    Je teste et te tiens au courant

    merci encore

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut Insertion du resultat de la requete dans une table access
    Slt

    Bon j'ai tester la requete SQL direct vers oracle avec l'option UNION et cela fonctionne parfaitement.
    le seul Probleme est que si je mets INSERT INTO MA_TABLE il me dit qu'elle n'existe pas, je présume que c'est parcequ'elle n'existe pas dans oracle.

    Elle existe par contre dans ma BD Access et j'aimerai qu'elle soit fourni par ma requete sql direct, bien evidement en effacant son contenu au préalable.

    Cela marchais par contre qd mes tables oracle etaient liées, et que je lancais la requete union sur ses dernieres.

    Voila je m'en remets a votre savoir faire

    Merci

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Je viens de tenter autre chose, j'ai creer une requete de ma requete sql direct
    afin de pouvoir mettre des critères. ( ca fonctionne)

    Je dois egalement faire du regroupement et une somme sur un champ.
    C''est la que ca coince... il me dit Impossible d'effectuer un regroupement sur les champs sélectionnés avec '*'. (Erreur 3121).

    Quel serait la solution, dois bien en avoir une lollllllll


    Merci

  15. #15
    say
    say est déconnecté
    Membre éprouvé
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 258
    Points
    1 258
    Par défaut
    Hello,
    C'est quoi l'intérêt d'inserer dans une table si tu n'as pas de modification et/ou suppression/ajout à effectuer sur tes données?
    Ta requete union servira de vue, sera toujours à jour et manipulable.
    il me dit Impossible d'effectuer un regroupement sur les champs sélectionnés avec '*'. (Erreur 3121).
    Il faut que tu mettes l'ensemble des champs un par un.

    pour :
    le seul Probleme est que si je mets INSERT INTO MA_TABLE il me dit qu'elle n'existe pas, je présume que c'est parcequ'elle n'existe pas dans oracle.
    t'es fait une requete SQL Direct? si oui, c'est normal qu'il te dise ça.


    pour la solution de LedZeppII, ça marche mais c bien compliqué, les tables liées marchent très bien.

    où en es tu?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Slt,
    Pour ma part et avec le peu de connaissance que j'ai, si je voulais creer une table s'etait simplement pour pourvoir faire differentes requetes sur cette table.

    J'avais au depart liés les table oracle ( enfin quelques unes) car je dois faire des requetes croisées afin de recuperer des libellé au lieu des clés.
    Le souci c'est que j'ai plusieur USER dans mon instances oracle et pour faire une requete en récuperant les libellé au lieu des cles il me fo 5 table pour chaque USER et j'ai 10 USERS.

    Donc je preferai faire une requete SQL direct ki me rammene les valeurs désirée dans access et ceux dans une seule et meme table.

    La requete fonctionne bien mais me donne une vue du resultat de la requete.
    je dois ensuite recuperer dans cette requete certaines valeurs correspondant a des champs de formulaire et effectivement faire regroupement de cerain champs + une somme d'un champs.

    Pour la solution de LedZeppII, elle fonctionne bien j'utulise celle la pour faire ma requete

    Voila j'espere être clair lollllll

    Merci encore

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 59
    Points : 36
    Points
    36
    Par défaut
    Re,
    Bon a priori j'ai reussi, je ne sais pas si j'ai bien fait mais voila ce que j'ai fait :
    J'ai mis tous les champs comme tu m'a indiqué, ensuite j'ai lancer la requete,
    meme erreur, je l'ai ouverte en sql pour verifier et j'ai supprimer le * avant mon FROM, d'ailleur je ne sais pas pkoi s'etait la et a koi ca servais, mais la ca fonctionne super bien.

    Donc merci a vous tous et si je peut aider a mon tour no PB

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

Discussions similaires

  1. Fusion de plusieurs tables
    Par Syliano dans le forum SSIS
    Réponses: 6
    Dernier message: 13/06/2012, 14h55
  2. fusion de plusieurs tables
    Par amatorahman dans le forum Pentaho
    Réponses: 4
    Dernier message: 23/04/2010, 18h50
  3. fusion de plusieurs champs d'une table à une autre
    Par reolik dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/02/2006, 08h39
  4. Une seule table VS plusieurs tables
    Par LostControl dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/08/2003, 10h56
  5. [SQL] Sélection ds plusieurs table
    Par lord_paco dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/07/2003, 17h53

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