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 :

jointure avec une table dans une autre DB


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2008
    Messages : 57
    Points : 47
    Points
    47
    Par défaut jointure avec une table dans une autre DB
    Bonjour, et au secours svp...
    Je n'arrive pas à faire marcher la requête ci-dessous : Elle sert à archiver les données de la table 'sinistres' (antérieurs à une certaine date) dans la table 'ArchiveSinistres'. Celle-ci est de même format que 'sinistres' et elle est dans une autre base de données dont le chemin est donné dans la directive 'IN'.

    En fait, la clause WHERE ne trouve pas la table 'ArchiveSinistres' et cette requête ne marche que si j'importe avec liaison la table d'archive dans la base de départ. (la clause WHERE me sert ici à éviter d'archiver des enregistrements déjà archivés)

    Je ne comprends pas pourquoi, alors que la clause INSERT INTO prend en compte le chemin menant à la table destination, la clause WHERE ne la voit pas !! Y-a-t'il un moyen d'éviter d'importer la table ?
    48h que je suis collé là dessus !!! Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO ArchiveSinistres IN 'C:\Documents and Settings\Pierre\Bureau\Archivage.accdb'
    SELECT sinistres.*
    FROM sinistres LEFT JOIN ArchiveSinistres 
    ON sinistres.N_interne = ArchiveSinistres.N_interne
    WHERE (((sinistres.date_envoi)<[forms]![Archivage]![DateArchivage]) 
    AND ((ArchiveSinistres.N_interne) Is Null));

  2. #2
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    bonjour,
    tu utilises quoi comme SGBD ?

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO ArchiveSinistres --IN 'C:\Documents and Settings\Pierre\Bureau\Archivage.accdb'
    SELECT sinistres.*
    FROM sinistres AS S LEFT JOIN ArchiveSinistres AS AS
    ON S.N_interne = AS.N_interne
    WHERE (((S.date_envoi)<[forms]![Archivage]![DateArchivage]) 
    AND ((AS.N_interne) IS NULL));
    Mais si c'est du Access, posta dans le forum Access car ce SGBDR tordu ne respecte pas le SQL normatif

    A +

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2008
    Messages : 57
    Points : 47
    Points
    47
    Par défaut
    Merci pour vos réponses :
    J'utilise ACCESS 2007, et donc je vais reposter ma question dans le forum access directement plutôt que le forum SQL.

    Mais en attendant, je ne comprends pas bien ta réponse SQLpro : comment ta requête peut-elle faire le JOIN avec "ArchiveSinistres" si tu enlèves les chemin d'accès windows qui est dans IN 'C:\Documents and Settings\Pierre\Bureau\Archivage. ? Je rappelle que la table destination "ArchiveSinistres" est dans une autre base de données que la base courante... (?)

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 11h17
  2. Réponses: 7
    Dernier message: 25/03/2011, 11h52
  3. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 15h29
  4. Réponses: 6
    Dernier message: 19/03/2009, 11h22
  5. Réponses: 2
    Dernier message: 10/03/2009, 13h45

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