Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2007, 23h35   #1
Membre habitué
 
Inscription : juillet 2006
Messages : 283
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 283
Points : 106
Points : 106
Par défaut Nombre d'éléments d'une liste de variables

Bonsoir,

Je n'arrive pas à récupérer dans une variable NBVA, le nombre d'éléments de la liste de variable d'une table SAS.

Voici le code :

celui ci c'est juste pour information :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
/*--------------------------------------------------------------------*/
/*--------------RECUPERER LA LISTE DES NOMS DES VARIABLES-------------*/
/*--------------------------------------------------------------------*/
 
PROC SQL NOPRINT;
  SELECT NAME
  INTO :NAMELIST
  SEPARATED BY ' '
  FROM DICTIONARY.COLUMNS
  WHERE LIBNAME EQ "WORK"    /* NOM DE LA LIBRAIRIE */
  AND MEMNAME EQ "bidon1";   /* NOM DE LA     TABLE */
QUIT;
 
%PUT &NAMELIST.; /* VERIFICATION */
celui là, c'est celui que ne marche pas, je ne comprends pas pourquoi.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
/*--------------------------------------------------------------------*/
/*----CALCUL DU NOMBRE D ELEMENT DE LA LISTE DES NOMS DES VARIABLES---*/
/*--------------------------------------------------------------------*/
 
%LET LISTEVA=%STR(%SYSFUNC(COMPBL(&NAMELIST.)));
%PUT &LISTEVA.;
 
DATA _NULL_;
 RETAIN I 1;
 TMP = %SYSFUNC(SCAN(&LISTEVA,I));
 DO WHILE (TMP NE ' ');
 I+1;
 END;
 NBVA=I;
 PUT NBVA;
RUN;
Merci pour l'aide ou si vous connaissez un moyen simple pour calculer le nombre d'éléments d'une liste je suis preneur!

ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2007, 10h27   #2
Membre habitué
 
Inscription : juillet 2006
Messages : 283
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 283
Points : 106
Points : 106
Bonjour,

Finalement, j'ai trouvé un programme qui répond à ma question :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*--------------------------------------------------------------------*/
/*-------RECUPERER LA LISTE DES NOMS DES VARIABLES ET LEUR NOMBRE-----*/
/*-------CALCUL DU NOMBRE D ELEMENT DE LA LISTE-----------------------*/
/*--------------------------------------------------------------------*/
 
PROC SQL NOPRINT; 
 
   CREATE TABLE NAMELIST1 AS 
   SELECT NAME,LENGTH
   FROM DICTIONARY.COLUMNS 
   WHERE LIBNAME EQ "WORK" AND MEMNAME EQ "TABLE1"; 
 
   %SYMDEL NAMELIST2;   /* POUR SUPPRIMER LA MACRO VARIABLE */
 
   SELECT NAME INTO :NAMELIST1 SEPARATED BY ' ' FROM NAMELIST1; 
 
   %SYMDEL NBVA;       /* POUR SUPPRIMER LA MACRO VARIABLE */
 
   SELECT COUNT(NAME) INTO :NBVA FROM NAMELIST1;
*
   DROP TABLE NAMELIST1;  /* POUR SUPPRIMER LA TABLE NAMELIST1 */
 
   QUIT;
 
%PUT &NBVA; %PUT &NAMELIST1;
ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h44.


 
 
 
 
Partenaires

Hébergement Web