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

QlikView Discussion :

Recherche de similitudes entres champs


Sujet :

QlikView

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 226
    Points : 78
    Points
    78
    Par défaut Recherche de similitudes entres champs
    Bonjour,

    J'ai des deux tables A et B avec des champs nom et prenom. Avec A qui contient 1000 enregistrements et B qui contient 20 enregistrements.

    Je veux trouver tous les enregistrements de A qui ont une similitude de 80% avec ceux de B.

    Quelqu'un a une idée?

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Je ne sais pas ce que vous appelez "une similitude de 80%".

    Vous pouvez utiliser l'algorithme de Levenshtein pour avoir une idée de la différence entre 2 chaînes.

    Exemple :
    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
    Chaine:
    LOAD  * INLINE [
    Chaine1
    Toto
    Titi
    Tutu
    BLa bla
    ];
     
    JOIN (Chaine)
    LOAD Chaine1 AS Chaine2
    RESIDENT Chaine;
     
     
    Result:
    LOAD
    Chaine1,
    Chaine2,
    Levenshtein(Chaine1, Chaine2) AS Levenshtein
    RESIDENT Chaine;
    DROP TABLE Chaine;

    Et dans les macro (Ctrl+M), une fonction VBS :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Function Levenshtein(str1, str2)
        Dim arrLev, intLen1, intLen2, i
        Dim j, arrStr1, arrStr2, intMini
     
        intLen1 = Len(str1)
        ReDim arrStr1(intLen1 + 1)
        intLen2 = Len(str2)
        ReDim arrStr2(intLen2 + 1)
        ReDim arrLev(intLen1 + 1, intLen2 + 1)
     
        arrLev(0, 0) = 0
        For i = 1 To intLen1
            arrLev(i, 0) = i
            arrStr1(i) = Mid(str1, i, 1)
        Next
     
        For j = 1 To intLen2
            arrLev(0, j) = j
            arrStr2(j) = Mid(str2, j, 1)
        Next
     
        For j = 1 To intLen2
            For i = 1 To intLen1
                If arrStr1(i) = arrStr2(j) Then
                    arrLev(i, j) = arrLev(i-1, j-1)
                Else
                    intMini = arrLev(i-1, j) 'deletion
                    If intMini > arrLev(i, j-1) Then intMini = arrLev(i, j-1) 'insertion
                    If intMini > arrLev(i-1, j-1) Then intMini = arrLev(i-1, j-1) 'deletion
     
                    arrLev(i, j) = intMini + 1
                End If
            Next
        Next
     
        Levenshtein = arrLev(intLen1, intLen2)
    End Function

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Excellent.
    Est il possible d'utiliser une fonction phonétique ?

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Vous pouvez regarder du coté des fonctions de Metaphone et Double Metaphone.

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Je ne trouve pas ces fonctions🤔

Discussions similaires

  1. [AC-2007] Relation entre deux requêtes pour rechercher une valeur de champs commune
    Par Debutant10 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 01/11/2011, 14h25
  2. Recherche similitudes entre 2 colonnes
    Par hassenssas dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/05/2008, 21h20
  3. recherche valeur maximale entre deux champs
    Par maysa dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/05/2005, 09h40
  4. Similitude entre documents
    Par camboui dans le forum Algorithmes et structures de données
    Réponses: 23
    Dernier message: 27/04/2005, 16h39
  5. recherche composant hybride entre le ComboBox et le DBLookup
    Par Calixte dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/06/2004, 13h32

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