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

Développement SQL Server Discussion :

Comparaison de données entre deux tables


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 311
    Points : 97
    Points
    97
    Par défaut Comparaison de données entre deux tables
    Bonjour tout le monde

    J'ai deux tables ClientA et ClientB

    ClientA contient déjà un ensemble de clients

    ce que je veux faire, c'est quand un client est inséré dans la table ClientB, aller vérifier
    si ce client existe déjà dans ClientA sioui le mettre à jour sinon l'insérer dans la table

    donc je dois faire une compraison avec le nom , le prénom, le sexe et la date de naissance

    sachant que il peut y'avoir une petite différence entre les deux noms mais qu'il s'agit de la meme personne

    exemple le prénom Jean pierre dans la table ClientB peut etre Jean-pierre (avec tiret) dans la table ClientA
    dans ce cas je pourrais remplacer les tirets par espace...


    ou dans Jean de louis et jean louis
    dans ce cas je pourrais remplacer les mots ayant moins de deux caractères par vide mais je ne sais pas comment le faire



    quelqu'un aurait une idée comment je pourrais procéder
    Merci infiniment

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 170
    Points : 7 422
    Points
    7 422
    Billets dans le blog
    1
    Par défaut
    Pour le update/insert conditionnel, je te laisse consulter la documentation de MERGE.

    http://msdn.microsoft.com/fr-fr/library/bb510625.aspx

    Quant à la comparaison "intelligente", tu peux tester :

    1/ Recherche FULLTEXT
    2/ Fonction scalaire CLR
    3/ Une usine à gaz en T-SQL

    1/ FULLTEXT : C'est ce qui apportera les meilleures performances. Mais c'est aussi très limité dans le sens où tu ne maîtrise pas vraiment la manière dont le moteur d'indexation textuelle va décider que "jean louis" et "jean de louis" est différent alors que "jean jr louis" est identique par exemple.
    http://msdn.microsoft.com/fr-fr/library/ms142571.aspx

    2/ Une fonction CLR est une fonction écrite en .NET (C++ managed, C#, VB.NET, etc.) qui est appelée directement par SQL Server, comme une procédure stockée. .NET offre tous les mécanismes (et les performances) nécessaires pour travailler sur des chaines de caractère.
    http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx

    3/ Avec des boucles en T-SQL, des expressions régulières, et autres usines à gaz qui vont mettre à genoux le moteur SQL, tu doit pouvoir aussi t'en sortir. Je te conseille cependant les deux premières solutions qui sont, dans l'ordre, les plus performantes.

    Attention toutefois à FULLTEXT : Tu ne maîtrises pas à quel moment l'index est mis à jour, ni sa qualité (mise à jour asynchrone). Et une même requête sur un même index à deux moments différents ne donnera pas forcément la même chose. Donc plus compliqué à maintenir.

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    J'ajouterais que SOUNDEX pourrait également être utile.

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Il y a aussi l'option SSIS vu que tu as déjà la licence SQL Server, à base de Fuzzy lookup.

Discussions similaires

  1. Copie de données entre deux tables
    Par Guite dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/06/2008, 11h08
  2. exporter les données entre deux tables différentes ?
    Par tizilfin dans le forum Oracle
    Réponses: 3
    Dernier message: 12/03/2007, 15h39
  3. Transferer a la volée des données entre deux tables
    Par schwinny dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 08h50
  4. Comparaison de données entre deux arrays
    Par sironimo dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 20/04/2006, 17h44
  5. transfert de données entre deux tables
    Par student007 dans le forum Access
    Réponses: 4
    Dernier message: 23/12/2005, 13h04

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