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

MS SQL Server Discussion :

FUZZY LOOKUP SIMILARITY THRESHOLD


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 23
    Points : 23
    Points
    23
    Par défaut FUZZY LOOKUP SIMILARITY THRESHOLD
    bonjour

    je dois faire un fuzzy lookup entre une table 'indicatifs' et mon fichier txt pour retrouver en fonction d'un champ numéro de téléphone le pays de destination

    j'indique 0.3 pour similarity Threshold

    Ex:

    Table indicatifs:

    ID Indi. Pays
    1 0032 Belgique fixe
    2 003247 Belgique Mobile1
    3 003248 Belgique Mobile 2
    4 003249 Belgique Mobile 3
    5 0033 France
    6 0034 Espagne
    ...

    dans mon fichier txt:

    si le tél vaut par ex: 003225554411 ==> il renvoie bien 1
    mais pour le numéro 003225501489 au lieu de renvoyer le 1 (car correspond le plus) il renvoie le 3 car il prend en compte le 48 pour la similarité.
    N'ya til pas moyen de ne prendre en compte que la similarité 'exacte' en début de chaine de caractère, sans ça tous les résultats peuvent etre altérés

    d'avance merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Pourquoi n'exerce tu pas ton fuzzy lookup sur une extraction du début du numéro de téléphone ?

    Pourrais-tu définir plus en détails ce que tu effectues comme actions ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse.

    en fait j'ai déja essayé ça:
    j'extrais les 6 premiers caractères du numéro de tél et je compare avec ma table indicatifs



    Table indicatifs:

    ID Indi. Pays

    1 0032 Belgique fixe
    2 003247 Belgique Mobile1
    3 003248 Belgique Mobile 2
    4 003249 Belgique Mobile 3
    5 0033 France
    6 0034 Espagne
    ...


    ex : 003224142853 ==> je compare 003224 avec ma table indicatif

    il me renvoie bien le 1 (belgique fixe)

    maintenant avec le numéro : 003228501489 ==> il compare 003228 avec la table indi. et là au lieu de me donner aussi le 1, il me renvoie le 3 (belgique mobile 2) du fait qu'il considere également la similiarité du 8 (dans 003228) et donc il a plus d'élément en commun avec l'id 3 que l'id 1.
    Ma question est de savoir s'il est possible de l'obliger à me renvoyer dans ce cas ci toujours le 1
    en ne tenant compte que du début de la chaine de caractère sans interruption (cad ne pas tenir compte du chiffre 8 car avant il y a 4 qui n'existe pas dans 003228

    je sais pas si tu vois ce que je veux dire
    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Pourrais-tu nous donner un exemple des commandes que tu utilises ? De cette manière, nous pourrions mieux identifier ce que tu souhaites faire.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Je dispose donc d'un package SSIS dans lequel j'importe un fichier plat contenant notamment un numéro de téléphone composé vers une destination

    J'ai la table destination qui contient toutes les destinations possibles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE [dbo].[Destinations](
    	[nid] [int] IDENTITY(1,1) NOT NULL,
    	[sPays] [nvarchar](50) NULL,
    	[scode] [nvarchar](50) NULL,	
    	[ddateinsertion] [datetime] NULL CONSTRAINT [DF_Destinations_ddateinsertion]  DEFAULT (getdate()),
    	[ntype] [int] NULL
    ) ON [PRIMARY]

    voici le code dans le SCRIPT COMPONENT pour extraire les 6 premiers carct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Not Row.Called_IsNull Then
                Row.Called2 = Left(Row.Called, 6)
            End If
    Pendant le traitement, je dois donc récupérer la destination appelée en faisant un fuzzy lookup sur la table destination sur base des 6 premiers caractères du numéro de téléphones présents dans le fichier plat
    .




    Comme résultat comme je l'ai écrit plus haut, dans la comparaison, le fuzzy lookup renvoie l'id de la destination qui contient "en vrac" le plus de chiffres en commun sans tenir compte de l'ordre de ceux ci , comment faire pour que le fuzzy lookup me renvoie uniquement l'id de la destination dont les chiffres correspondent exactement

    merci

Discussions similaires

  1. [2008R2] Gestion 32 bits / 64 bits pour Fuzzy Lookup
    Par dai.kaioh dans le forum SSIS
    Réponses: 1
    Dernier message: 16/08/2012, 09h26
  2. Fuzzy Lookup mullticritère
    Par magicsam dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/04/2008, 15h55
  3. FUZZY LOOKUP IF NO RESULT
    Par magicsam dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 07/02/2008, 23h07
  4. FUZZY LOOKUP: recherche sur 2 premiers caract.
    Par magicsam dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/12/2007, 00h32
  5. champ lookup sur querydataSet
    Par freinhar dans le forum JBuilder
    Réponses: 3
    Dernier message: 20/12/2002, 17h29

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