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 :

Regrouper code postal par groupe de 6 presque identiques sur AC-2003 [AC-2003]


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut Regrouper code postal par groupe de 6 presque identiques sur AC-2003
    Bonjour,

    J'ai besoin de regrouper des données en les classant par commune, dès que 6 codes postaux ont les trois premiers chiffres en commun AAA*** mais je ne sais pas du tout comment faire en Sql ou VBA sur Access 2003.
    Quelqu'un aurait-il une idée ?
    Par avance merci !

  2. #2
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 959
    Par défaut
    Bonsoir,
    si c'est pour une requête, tu peux utiliser left([codpos];3) pour regrouper et trier, mais un groupe de 6 est-ce vraiment une condition inévitable ?

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour et bienvenue chez nous,

    Peux-tu donner un exemple :

    AAA001 5
    AAA002 7
    AAA003 3
    AAA004 2
    AAA005 1
    AAA006 5
    AAA007 7

    BBB001 8
    BBB002 2
    BBB003 4


    Que voudrais-tu comme résultat ?

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut
    Le regroupement par 6 est pas nécessaire mais en gros si j'ai

    21320
    21050
    21000
    21000
    86000
    75400
    21500
    21800
    21000
    21050
    21000

    je voudrais juste sortir les 210*** dès qu'il y en a plus de 6. Pour finalement mettre un petit signe sur des enveloppes si il y en a + de 6.
    C'est pour un routage et je dois sortir les séries de + de 6 pour un tarif différent lors des envois.

  5. #5
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 959
    Par défaut
    Bonsoir,
    tu peux t'inspirer de ceci :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT adresse, ville, cp,  ' etc ... 
    FROM matable
    WHERE Left([cp],3) In (SELECT Left([cp],3) AS reg FROM matable GROUP BY Left([cp],3)
    HAVING Count(*)>6);
    Par contre si on considère qu'un code postal (21000 dans ton exemple) est unique il faudra remplacer la requête du In (select ...) par une requête de regroupement sur le code postal :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT adresse, ville, cp,  ' etc ...
    FROM matable
    WHERE (Left([cp],3) In (SELECT  Left([cp],3) AS reg FROM (SELECT cp FROM matable GROUP BY cp) as matb GROUP BY Left([cp],3)
    HAVING Count(*)>6));

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut
    Merci ! Ça marche au poil !
    Un grand bravo. Je vais pouvoir imprimer mes enveloppes comme il faut !

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut
    Désolé, j'ai encore une petite question..
    Comment faire si, au lieu de filtrer ma sélection, je veux simplement afficher ou non un caractère dans un champ..

    Par exemple j'aurai l'ensemble des résultats mais pour ceux qui ont plus de 6 caractères en commun, une petite étoile en plus dans un champ :


    ID CP ETOILE
    1 21000 *
    2 21050 *
    3 21500 *
    4 81000
    5 21000 *
    6 21030 *
    7 21020 *
    8 73000
    9 21550 *


    Désolé si la question vous semble bête.. Je suis vraiment un noob..

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

Discussions similaires

  1. Grouper par dept avec le code postal
    Par philippefabre dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 29/07/2008, 16h24
  2. WebService Commune de france par code postal
    Par Nako_lito dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 04/07/2008, 16h19
  3. regrouper par groupe de valeur
    Par papilou86 dans le forum IHM
    Réponses: 2
    Dernier message: 23/01/2008, 21h16
  4. [Shell] Regrouper les lignes par groupe de trois
    Par bazouil29 dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 04/01/2008, 21h43
  5. recherche par code postal et ville
    Par ZEUSGR dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/11/2007, 10h46

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