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

Access Discussion :

Regroupement sur une seule ligne


Sujet :

Access

  1. #1
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 728
    Points : 632
    Points
    632
    Par défaut Regroupement sur une seule ligne
    Bonjour,


    je dois me replonger dans Access pour importer d'anciennes données.

    C'est certainement très simple ... mais je tourne en rond ...

    J'ai une table avec quelques milliers d'enregistrements , il s'agit de membres avec leurs propriétés. Le problème est que dans la structure de cette base les enfants d'une même famille sont regroupés sous un n° d'abonnement et comme les données ne sont pas toujours très cohérentes , pour un même enfant il peut être enregistré avec un prénom du parent différent ( une fois la mère , une fois le père ... une fois ?? ... le facteur ?? )

    Bref , je voudrais pour ressortir tous les enfants avec un seul prénom de parent ( père , mère ou facteur c'est égal ) en les regroupant par le numéro d'abonnement.

    Par exemple , données de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    N°       Prenom   Nom        Parent 
    120     Gaston    Lagaffe    Jeanne
    120     Gaston    Lagaffe    Prunelle
    115     Spirou     Petit       Marie
    115     Spirou     Petit       Papy
    125     Tsuno       Yoko      Paul
    125     Tsuno       Yoko      Paul
    ...
    deviendrait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    N°       Prenom   Nom        Parent 
    120     Gaston    Lagaffe    Jeanne
    115     Spirou     Petit       Marie
    125     Tsuno       Yoko      Paul
    ...
    Je butte, dès que je regroupe et que le nom du parent est différent , toutes les lignes de l'enfant sont affichées

    Si quelqu'un a une idée , je suis preneur !

    Excellente journée à tous

    Olivier

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    Il faut faire 2 select imbriqués :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct num, prenom, nom, dlookup('parent','mabase','num=' & num) from mabase
    dlookup est une variante de "select top 1" (qui a l'avantage de permettre de trier si besoin) qui prend un parent "au hasard"

  3. #3
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 728
    Points : 632
    Points
    632
    Par défaut
    Je te remercie pour ta réponse plus que rapide !!

    J'ai testé ta solution et elle fonctionne bien , j'ai modifié mon code de cette façon pour ne pas avoir les parents "vides":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT Clients.ID_Client, Clients.Nom, DLookUp("nomParents","clients","ID_Client=" & ID_Client & "") AS PrenomParent
    FROM Clients
    jusque là , tout est bon, mais si je rajoute les autres critères , comme adresse , NPA etc.. , tous les enregistrements réapparaissent

    J'ai donc essaye de remettre un dslookup ( que je ne connaissait pas ) a la suite ... et ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT Clients.ID_Client, Clients.Nom, DLookUp("nomParents","clients","ID_Client=" & ID_Client & "") AS PrenomParent,
    DLookUp("NPA","clients","ID_Client=" & ID_Client & "") AS Adresse,
    FROM Clients
    Par contre j'ai l'impression qu'il prend aussi une adresse au hasard sur l'un des parents, est-ce que j'ai raison ?

    Il faudrait que, du moment qu'il prend un des parents au hasard, qu'il prenne l'adresse qui corresponde. Tu images si c'est l'adresse du facteur qui sort a la place de celle du père ... je suis pour la paix des ménages !

    Amicalement


    Olivier

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Bonjour à vous deux,

    J'ai lu récemment dans un post que la fonction First() (ou Last()) ne servaient à rien et n'étaient jamais ou rarement utilisées...

    Contre-exemple ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT p.id_client, 
           p.prenom, 
           p.nom, 
           First(p.parent) AS unparent, 
           First(p.npa)    AS adresseparent 
    FROM   prenom AS p 
    GROUP  BY p.id_client, 
              p.prenom, 
              p.nom;
    @+

    Philippe

Discussions similaires

  1. [AC 2010] Regroupement sur une seule ligne
    Par Nicole14 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 14/02/2014, 18h45
  2. Regroupement d'informations sur une seule ligne
    Par KiteAtao dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/03/2011, 08h27
  3. Regroupement de résultats sur une seul ligne
    Par ximun974 dans le forum Requêtes
    Réponses: 3
    Dernier message: 30/12/2010, 12h55
  4. Regroupement sur une seule ligne
    Par tonyC dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/12/2009, 11h17
  5. wxWidgets : couleur de texte sur une seule ligne
    Par Oatly dans le forum wxWidgets
    Réponses: 8
    Dernier message: 05/12/2004, 19h24

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