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] comparaison de chaines, mot par mot


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Points : 49
    Points
    49
    Par défaut [SQL] comparaison de chaines, mot par mot
    Bonjour,

    J'ai un champs LASTNAME (dans table1) que je souhaiterais comparer à un champs LASTNAME2 (dans table2).
    Dans cette comparaison :
    - Il doit me ressortir tous les champs LASTNAME dont le contenu ne contient aucun mot du champs LASTNAME2.
    - Le mot comparé doit être différent de Cinéma

    Exemples :
    valeurs de LASTNAME : Le palace - Le Cinéma Carpaccio
    valeur de LASTNAME2 : Le Palace - Le Cinéma Appolo
    La valeur "Le paace" ne ressortira pas car le mot Palace est contenu dans les deux champs.
    La valeur "Le Cinéma Carpaccio" ressortira car le mot Cinéma ne doit pas faire l'objet de comparaison.


    Je vous remercie d'avance pour tout aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 629
    Points : 34 335
    Points
    34 335
    Par défaut
    salut,
    j'ai un doute sur ma compréhension de ta problématique :
    - aucun mot de ton deuxième champs
    => si j'ai "A B C" dans le 1 et "A B D" dans le 2 pour moi c'est faux
    => si j'ai "A B C" dans le 1 et "D E F" dans le 2 là c'est vrai...

    est-ce bien cela, parce que ton exemple n'est pas compréhensible
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Points : 49
    Points
    49
    Par défaut
    Merci.
    C'est exactement celà.

    Salim

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 629
    Points : 34 335
    Points
    34 335
    Par défaut
    la méthodologie la plus simple serait de créer une fonction qui prend en paramètre les deux valeurs et retourne un booléen.

    L'idée est de traiter mot à mot chaque champ :

    à valider dans certains cas mais l'idée est là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Function Aucun_Mot_Commun(StrChamp1 As String, strChamp2 As String) As Boolean
    dim var1 As Variant
    dim var2 As Variant
    dim i as integer
    dim j as integer
    dim tmpresult as Boolean
    var1 = Split(strChamp1," ")
    var2 = Split(strChamp2," ")
     
    for i = 1 to Ubound(var1)
    tmpresult= False
    for j = 1 to Ubound(var2)
    If var1(i) = var2(j) Then 
    tmpresult = True
    End if
    Next j
    if tmpresult = True Then 
    'le mot i du champ1 existe dans le champ2
    'on a bien au moins un mot en commun
    Aucun_Mot_Commun = False
    Exit Function
    End if
    Next i
    Aucun_Mot_Commun = True
    End Function
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. Lire mot par mot une chaine de caractère
    Par asnaeb dans le forum Débuter
    Réponses: 1
    Dernier message: 10/05/2010, 15h51
  2. Lire le contenu d'un champ mot par mot
    Par mlaiti dans le forum SQL
    Réponses: 4
    Dernier message: 17/03/2008, 11h49
  3. [SQL] comparaison de chaine
    Par khamett dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/02/2008, 15h49
  4. [MySQL] SQL et résultat de recherche par mot clef
    Par carelha dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/04/2006, 15h40
  5. Lecture d'un fichier mot par mot
    Par hamster dans le forum C++
    Réponses: 7
    Dernier message: 21/02/2005, 17h25

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