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 :

Joindre requêtes SELECT et UPDATE en une seule ? Et recheche sur valeurs "similaires". [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Cartographie
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Cartographie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Joindre requêtes SELECT et UPDATE en une seule ? Et recheche sur valeurs "similaires".
    Bonjour à tous,

    Je récupère suite à un processus de lecture optique une table contenant un champ "Pays", codé sur 3 digits en numérique, mais lorsque la lecture optique n'a pas su interpréter les résultats, le nom du pays en question est écrit en toutes lettres, ça peut être par exemple "FR AN C E".

    Dans une première requête SELECT, je regoupe les champs dont le code pays n'a pas pu être interprété, c-à-d tous les champs où figurent des caractères alphabétiques.

    Puis, dans une sous-requête UPDATE, je nettoie les champs sélectionnés en supprimant les espaces qu'ils peuvent éventuellement contenir, donc "FR AN C E" devient "FRANCE".

    Aussi, je me demandais s'il était possible de regrouper ces 2 requêtes en une seule, bien qu'elles soient de nature différente (SELECT et UPDATE) ?


    Ensuite, je dois comparer mon résultat à ma table pays de référence (qui contient la codification sur 3 digits), par ex : si j'obtiens après suppression des espaces un champ contenant le pays "F8ANCE", il faudrait que je puisse l'assimiler à l'enregistrement contenant "FRANCE" dans ma table pays de référence, afin de lui attribuer le code pays qui convient.

    Est-il possible de faire une telle comparaison ? Y a t-il une instruction permettant de comparer des chaînes de caractères "similaires" ou "voisins" ?

    J'espère avoir correctement exposé mon cas et que cela vous est compréhensible.

    Merci par avance.

    Bien cordialement.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 86
    Points : 74
    Points
    74
    Par défaut Pourquoi deux requêtes?
    Bonjour,
    Je ne comprends pas l'intérêt de deux requêtes.
    L'update consiste à supprimer les espaces qui s'ajoutent suite à la reconnaissance optique, c'est ça?
    donc un ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update NomDeLaTable Set [Pays]=replace([Pays]," ","")
    ... dans la requête update doit suffire.
    Où voyez-vous la nécessité de faire un regroupement?
    Faites un test en créant directement une requête dans QBE
    un lien peut-être: http://blog.developpez.com/f-leb/p96...s_avec_l_ass_1
    A+
    Sellig60

  3. #3
    Membre à l'essai
    Homme Profil pro
    Cartographie
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Cartographie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Bonjour Sellig60,

    Tout d'abord, merci de votre intérêt pour mon sujet, et pardon de ne pas avoir été bien clair : le but de la première requête est d'afficher dans un premier temps les enregistrements qui n'ont pas été interprétés par la lecture optique, histoire d'en avoir un aperçu, puis la deuxième requête procède à leur mise à jour. Je voulais constater la correction des enregistrements à l'écran, mais je peux effectivement m'en passer. Merci pour le lien, c'est avec grand intérêt que je le lirai.

    En ce qui concerne la comparaison de chaines de caractères (pour le codage des pays), auriez-vous une technique ou un autre lien à me proposer svp ?

    Merci beaucoup pour votre aide.

    Cordialement.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 86
    Points : 74
    Points
    74
    Par défaut Distance de Levenshtein
    Bonjour,
    Pour la comparaison de chaînes (pb qui m'intéresse aussi), je n'ai encore rien trouvé tout fait par contre j'ai trouvé ça:
    http://fr.wikipedia.org/wiki/Distance_de_Levenshtein
    qui peut aider à construire une fonction mais je ne m'y suis pas atteler.
    sinon quelles sont les erreurs?
    Apparemment du classique OCR, un R transformer en 8, ce pourrait être aussi un H qui devient 8, un Z qui devient 2, un i majuscule qui devient 1 etc...
    donc on peut faire une recherche sur les codes ASCII des chiffres qui n'ont pas à se trouver là et les virer ou les remplacer.
    Reste à faire la fonction
    A+
    Sellig60

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 600
    Points : 56 698
    Points
    56 698
    Billets dans le blog
    40

  6. #6
    Membre à l'essai
    Homme Profil pro
    Cartographie
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Cartographie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Bonjour Sellig60 et f-leb,

    Merci pour vos réponses éclairées, effectivement la distance de Levenshtein est un concept qui semble très intéressant.

    Quid de la rapidité compte tenu du fait que mes tables comportent une vingtaine de milliers de lignes.

    Je vais étudier cette technique avec grand intérêt et faire quelques tests.

    Merci encore pour votre aide.

    Bien cordialement.

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

Discussions similaires

  1. [AC-2007] Requête SELECT entre enregistrements d'une seule et même table
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/01/2013, 19h38
  2. Regrouper 2 update dans une seule requête
    Par pol2095 dans le forum Requêtes
    Réponses: 12
    Dernier message: 28/10/2011, 21h58
  3. Réponses: 2
    Dernier message: 01/10/2010, 14h00
  4. Fusionner 3 requêtes avec un SUM en une seule
    Par David Guillouet dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/07/2004, 15h54

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