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

SAS Base Discussion :

Groupement sur une colonne et concaténation d'une autre [SQL]


Sujet :

SAS Base

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 134
    Points
    134
    Par défaut Groupement sur une colonne et concaténation d'une autre
    Bonjour,

    Pour une table ainsi disposée :
    ID ValManquante
    952 Val1
    952 Val2
    953 Val1
    955 Val1

    Comment obtenir :
    ID ConcatValManquante
    952 Val1-Val2
    953 Val1
    955 Val1

    Il y a peut-être un group by sur ID, mais la fonction CONCAT ne convient pas pour concaténer ValManquante?
    Une étape data avec un retain est indispensable?
    La fonction GROUP_CONCAT de MySql est ce que je cherche, mais elle n'est pas disponible sous SAS. Il semble possible de la simuler mais on s'éloigne d'une solution élégante avec peu de lignes...

  2. #2
    Membre actif
    Homme Profil pro
    KEYRUS - Chef de projet
    Inscrit en
    Avril 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : KEYRUS - Chef de projet

    Informations forums :
    Inscription : Avril 2014
    Messages : 45
    Points : 277
    Points
    277
    Par défaut
    Bonjour,

    Le code suivant devrait fonctionner dans votre cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    proc sort data=MATABLE out=MATABLETRI;
      by ID;
    run;
     
    DATA MATABLEFINALE;
      length R_VALMANQUANTE VALMANQUANTE $500;
      retain R_VALMANQUANTE '';
      set MATABLETRI;
      by ID;
     
      if first.ID then R_VALMANQUANTE = VALMANQUANTE;
                  else R_VALMANQUANTE = compbl(VALMANQUANTE !! '-' !! R_VALMANQUANTE);
     
      if last.ID;
    run;
    Cordialement

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 134
    Points
    134
    Par défaut
    Excellent ! Merci beaucoup!

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

Discussions similaires

  1. [XL-2003] Trier une colonne de moyenne, rattachée à une colonne de noms
    Par floctc dans le forum Excel
    Réponses: 3
    Dernier message: 11/03/2011, 10h57
  2. concaténation d'une colonne
    Par Pol63 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 23/08/2008, 13h01
  3. memoriser une colonne de cellule d'une feuille sur les autres feuilles
    Par iturria64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2007, 02h33
  4. [9i]Concaténation d'une colonne
    Par gigigao dans le forum SQL
    Réponses: 10
    Dernier message: 18/09/2007, 16h34
  5. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 20h29

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