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 :

Requête de codes postaux canadiens [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2010
    Messages : 33
    Points : 28
    Points
    28
    Par défaut Requête de codes postaux canadiens
    Bonjour,

    Compte tenu que je demeure dans un pays immense , j'ai quelques petits soucis à lier le code postal avec le regroupement de ville (MRC) et la région administrative. J'ai trouvé un fichier TXT qui me permets d'obtenir ces données que j'ai converti en Access. Le fichier txt se trouve à l'endroit suivant :

    https://www.electionsquebec.qc.ca/fr...ode-postal.php

    Mon problème se situe sur trois fronts :
    1er : Comme cette table possède plusieurs autres dont l'utilité est nulle dans mon cas telle que la circonscription et la ville, ce qui cause plusieurs entrées superflues.

    2e : Quelques code postaux (CO_Postal) ne possèdent pas le même MRC (NM_MRC) et le même numéro de région (CO_REGN_ADMNS qui sont les champs dont j'ai besoin. Le code SELECT DISTINCT ne fonctionne donc pas, à moins que je ne l'utilise pas correctement . À la limite, il pourrait me sortir la 1ère entrée avec un code postal spécifique, car ceux qui ont des MRC ou des régions différentes sont vraiment des petites villes et il serait très surprenant que plusieurs "clients" proviennent de ces codes postaux. Ce serait dans la marge d'erreur!

    3e : Comme cette table txt est souvent modifié (à tous les 6 moins, approximativement), je voudrais créer une requête Access au lieu de supprimer manuellement chaque entrées superflues.

    En passant, j'ai essayé la macro inclus dans le fichier Excel sur la même page Internet, mais cela prends un temps fou à générer, jusqu'à 2 heures. Cela ralentit vraiment mon travail.

    P.S. : J'aimerais bien vous envoyer la table en pièce jointe, mais elle dépasse la limite pour un fichier zippé.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2010
    Messages : 33
    Points : 28
    Points
    28
    Par défaut Retirer des doublons de codes postaux dans une BD
    BDCodePostaux - Copie.7z

    Bonjour,

    Comme je n'ai pas eu de réponses, j'ai essayé de zippé mon base de données Access dans un autre format afin que cela s'inscrive vos critères de poids de pièces jointes. Vous pouvez donc le consulter au besoin.

    Donc, pour résumer mon problème qui n'était vraiment pas simple à expliquer sa pièce jointe.

    1. J'ai obtenu une liste de code postaux en format TXT que j'ai converti en BD Access. La table se nomme TCodePostaux, elle contient les plusieurs champs dont CO_POSTL, NM_MRC, CO_REGN_ADMNS dont j'ai besoin pour analyse avec des listes de codes postaux.

    2. Le 1er problème est lorsque je veux isoler uniquement ces 3 éléments (RqeTestCode), je me retrouve avec plusieurs doublons car il y a plusieurs autres champs dans la table. Comment puis-je obtenir les données uniques de ces 3 champs.

    3. Le 2e problème est que même en ne prenant que les 3 champs uniques je me ramasse avec plusieurs doublons de codes postaux, car comme le Canada est un pays immense parfois les régions et les MRC (un regroupe ment de ville) diffère pour le même code postal.

    J'ai essayé d'acheter des listes de codes postaux canadiens sur Internet, mais ces listes n'incluent les MRC et les régions administratives, car ce sont des données de juridiction provinciale (le Québec) et les listes sont de juridictions fédérales (Canada)

    Merci et bonne journée,

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonsoir,

    Requete qui n'affiche que les doublons (on peut les supprimer en remplaçant le 1er SELECT par DELETE !):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *
    FROM   tcodepostaux cp
    WHERE  id <> (SELECT First(id)
                 FROM   tcodepostaux
                 WHERE  co_postl = cp.co_postl
                        AND nm_mrc = cp.nm_mrc
                        AND co_regn_admns = cp.co_regn_admns)
    une requete pour créer une table nommée 'TMP' sans doublon sur co_postl et nm_mrc et co_regn_admns :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT *
    INTO   TMP
    FROM   tcodepostaux cp
    WHERE  id = (SELECT First(id)
                 FROM   tcodepostaux
                 WHERE  co_postl = cp.co_postl
                        AND nm_mrc = cp.nm_mrc
                        AND co_regn_admns = cp.co_regn_admns)

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2010
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    Merci Galoir!

    J'ai essayé vos 2 requêtes et cela règle bien le 1er problème en éliminant les doublons qui ont le même MRC et la même région.

    Cependant lorsque ces 2 champs sont différents dans le même code postal, il apparait toujours 2 fois. Comme par exemple pour les codes postaux G0L 2V0 et GOV 1N0. Ce qui est parfaitement normal. car ce sont 2 entrées différentes.

    J'aimerais que le code postal n'apparaisse qu'une fois quitte à sélectionner uniquement que le 1er. Peut-être, en utilisant MAX ou MIN, mais je ne sais pas où l'inscrire.

    En passant, je préfère la 2e requête que vous m'avez transmis, car je n'ai pas besoin de supprimer de données dans la table originale (qui pourrait être utiliser à d'autres fins).

    Merci encore!!!

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonsoir,

    Conseil : ajouter un index 'avec doublons' sur la colonne 'co_postl' de la table TMP, sinon la requete suivante va être très lente...

    On peut afficher les doublons de la table TMP par :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT *
    FROM   tmp AS cp
    WHERE  id <> (SELECT First(id)
                  FROM   tmp
                  WHERE  co_postl = cp.co_postl
                         AND co_regn_admns = cp.co_regn_admns)

    pour supprimer les doublons de la table TMP, remplacer le 1er SELECT par DELETE

    pour info, il existe aussi des doublons de code postal sur des co_regn_admns différents


  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2010
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    Cela fonctionne!! :

    Merci infiniment!!

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

Discussions similaires

  1. Requête entre 2 codes postaux de type alphanumérique
    Par poetedelavie dans le forum Requêtes
    Réponses: 5
    Dernier message: 03/09/2014, 15h26
  2. Requête pour regrouper des codes postaux
    Par viny dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/04/2012, 21h22
  3. Se procurer bases de données ISBN, UCP, Codes postaux...
    Par zatomik dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 26/10/2010, 19h55
  4. Liste des villes et codes postaux
    Par CynO dans le forum Services
    Réponses: 11
    Dernier message: 27/09/2007, 01h07
  5. Tri par Codes Postaux + Noms d'entreprises
    Par matperino dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/07/2005, 14h04

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