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 :

Relation entre deux requêtes pour rechercher une valeur de champs commune [AC-2007]


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Par défaut Relation entre deux requêtes pour rechercher une valeur de champs commune
    Bonjour,

    je bloque un peu et mon résultat n'est pas ce que j'attends car il y a une petite suptilité ou astuce: je retrouve pas les valeurs comme une rechercheV.


    J'ai deux requêtes différentes avec 1 er requête champs CBE et une autre requête avec un champs OVE, mais toutes les 2 ont un point commun le résultat mais dans le désordre, je voudrais faire comme une recherche v simplement mais cela marche pas quand les valeurs des champs sont dans le désordre. pourquoi pas une sorte de contient...

    mon cas :

    champs
    CBE : contient les données suivante B522 etc... incrémentation sur 600 lignes.
    OVE : contient les mêmes données suivante mais dans le désordre 522 B 3 avec un chiffre en plus et des espaces.

    je voudrais trouver l 'astuce qui me permettre de dire dans la liaison entre c deux champs si OVE contient exemple les 4 1 er caractères de CBE alors recopie le champ identiques comme une recherche v

    merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faut que dans une des requêtes que tu crées un champ où grâce à des fonctions de gestions de chaines tu remets cela dans l'ordre comme dans la deuxième requête, et ensuite tu fais la liaison sur ce champ.

    Pour les fonctions, il s'agit de concaténation avec Left, Right et Mid pour extraire les données.

    Philippe

  3. #3
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Cela pourrait se traduire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE Table1, Table2 SET Table1.ove = [cbe] WHERE (((InStr(1,[cbe],Mid$([ove],2,3)))>0) AND ((InStr(1,[cbe],Mid$([ove],1,1)))>0));
    les parties de chaines à chercher sont définies par les Mid$
    obe est copié dans ove si les conditions sont vérifiées

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Par défaut
    Tout d'abord Merci Helas pour votre vision, je trouve que c pas trop mal,

    cependant voici le sql que j'ai adapté suite à votre aide mais je bloque toujours :

    table 1 = Base
    table 2 = INDC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT INDC.ove, InStr(1,[cbe],Mid$([ove],2,3)) AS Expr1, InStr(1,[cbe],Mid$([ove],1,1)) AS Expr2
    FROM INDC INNER JOIN Base ON INDC.OVE = Base.CBE
    WHERE (((InStr(1,[cbe],Mid$([ove],2,3)))>0) AND ((InStr(1,[cbe],Mid$([ove],1,1)))>0));
    j'ai liée les 2 requêtes, mais n'arrive pas à recopier les mêmes données suivante dans OVE si présente dans CBE même si dans le désordre.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Table1, Table2 SET Table1.ove = [cbe] WHERE (((InStr(1,[cbe],Mid$([ove],2,3)))>0) AND ((InStr(1,[cbe],Mid$([ove],1,1)))>0));
    est-il possible de le faire sans update ? car j 'arrive pas à faire tourner la requête..

  6. #6
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    et avec ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE INDC, Base SET INDC.ove = [cbe] WHERE (((InStr(1,[cbe],Mid$([ove],2,3)))>0) AND ((InStr(1,[cbe],Mid$([ove],1,1)))>0));

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Par défaut
    Bonjour toujours impossible

    J'ai testé mais n 'arrive pas le faire fonctionner, je suis arrivé à faire la requête mais aucune recopie n'est faite

    voici mon fichier pour exemple, comment le faire marcher ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE INDC, Base SET INDC.ove = [cbe] WHERE (((InStr(1,[cbe],Mid$([ove],2,3)))>0) AND ((InStr(1,[cbe],Mid$([ove],1,1)))>0));

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

Discussions similaires

  1. [XL-2007] Fonction recherchev pour rechercher une valeur
    Par dodkirua dans le forum Excel
    Réponses: 2
    Dernier message: 03/10/2014, 11h18
  2. [XL-2003] Macro pour rechercher une valeur en fonction de la valeur d'une cellule
    Par Rook93 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/01/2013, 11h42
  3. codage vba pour rechercher une valeur selon 2 critères
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/10/2011, 21h29
  4. Requête pour mettre une valeur a un champ.
    Par Jazz_ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/10/2010, 11h35
  5. [XPATH] Rechercher une valeur entre deux valeurs min et max
    Par icicmoi dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/10/2008, 12h12

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