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 :

SQL : union de 2 tables contenant des champs OLE ?


Sujet :

Requêtes et SQL.

  1. #1
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut SQL : union de 2 tables contenant des champs OLE ?
    bonsoir
    Je dois faire une union de 2 tables qui contiennent des champs OLE mais j'obtiens un message
    Impossible d'utiliser un champs memo, OLE, HyperLink object 'etat_Ole' dans la clause select d'une requête union
    Comment faire ?



    Merci

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 762
    Points : 14 796
    Points
    14 796
    Par défaut
    Bonsoir,
    Deux solutions sont possibles...
    1) ne pas utiliser de requête UNION qui interdit l'utilisation des champ OLE, mémo ...
    2) Tu fabriques ta requète UNION sans les champs OLE, puis tu la réutilises dans une nouvelle requête en faisant une jointure ouverte (LEFT JOIN) sur les tables où se trouvent tes champs OLE car là, tu peux les insérer en utilisant un vraifaux (il te faut bien évidemment une clé unique pour se faire)
    requete UNION reqole:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT table_2.N°, table_2.chp1, table_2.chp2
    FROM table_2
    UNION SELECT table1.N°, table1.chp1, table1.chp2
    FROM table1;
    requète utilisant la requète union en y insérant un champ OLE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT reqole.*, IIf(Table1.N° Is Not Null,[memo2],[ole1]) AS Myole
    FROM (reqole LEFT JOIN table1 ON reqole.N°=table1.N°) LEFT JOIN table_2 ON reqole.N°=table_2.N°;
    Ceci n'est qu'un exemple à adapter à ton besoin...

  3. #3
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Merci tee_grandbois !
    Puis je abuser encore un peu de ton expérience ?
    comment ajouter un clé unique sur la table issue de l'union ?

  4. #4
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf(Table1.N° Is Not Null,[memo2],[ole1]) AS Myole
    Peux tu m'expliquer ce qu'est ..


  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Et bien mémo correspond au champ OLE de la table 1.

    Tu aura quelque chose comme ça

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT reqole.*, IIF(Table1.Num IS NULL,Table2.Num,Table1.Num)
    FROM (reqoleLEFT JOIN Table1  ON Table1.Num = reqole.Num) LEFT JOIN TABLE2 ON Table2.Num = reqole.Num;

    Ici, le champ num des tables est l'identifiant de chaque ligne

  6. #6
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Merci Tofalu !
    C'est pigé, mais il me reste à ajouter un clé unique sur la table issue de l'union..

    Comment faire ?


  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    La clé unique elle est dans les tables table1 et table2. C'est elle qui est utilisée par la jointure.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/02/2015, 19h17
  2. Jointure avec tables contenant des memes noms de champs
    Par guy2004 dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/01/2010, 10h25
  3. Réponses: 14
    Dernier message: 23/07/2007, 17h29
  4. comment récupérer le liste des tables et des champs
    Par sekaijin dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 26/07/2006, 16h26
  5. Réponses: 2
    Dernier message: 07/11/2005, 18h54

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