Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
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 09/09/2008, 11h08   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 32
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 32
Points : 11
Points : 11
Par défaut [Macro] Boucle non définie

Bonjour à tous,

J'avoue que je suis arrivée aux limites de ce que je pouvais faire sur SAS;Voilà :

j'ai une macro qui me permet de créer plusieurs tables selon les années. (voir ci-dessous)

Dans un deuxième temps, je compile toutes ces tables afin de me créer une seule table "BB". Le problème c'est que j'ai au moins 5 années. Comment automatiser cette tâche.
Comment faire pour que AUTOMATIQUEMENT, dès qu'une table "anaaaamm" est créee qu'elle soit directement intégrée à la table compilée "BB".

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
%MACRO SERIE (DATE= ); 
	DATA  CPS. an&DATE ; 
	SET CPS.TABLE  ; 
	run;
 
%MEND SERIE;
%SERIE (DATE=200301) %SERIE (DATE=200302) %SERIE (DATE=200303) %SERIE (DATE=200304) %SERIE (DATE=200305) %SERIE (DATE=200306)
%SERIE (DATE=200307) %SERIE (DATE=200308) %SERIE (DATE=200309) %SERIE (DATE=200310) %SERIE (DATE=200311) %SERIE (DATE=200312);
 
DATA BB; 
merge 
 
CPS.an200301  CPS.an200302  CPS.an200303 CPS.an200304  CPS.an200305  CPS.an200306  CPS.an200307  CPS.an200308 CPS.an200309  CPS.an200310  CPS.an200311  CPS.an200312 ; 
 
Run ;
didinet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 11h27   #2
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
Bonjour,
Vu que ta boucle n'est pas définie par avance je te propose d'utiliser parmbuff et syspbuff pour résoudre ton problème.
Fafabzh
__________________
Les balises code
FAQ SAS
Rubrique SAS

Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 14h09   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 32
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 32
Points : 11
Points : 11
Par défaut automatiser tâche

Citation:
Envoyé par fafabzh6 Voir le message
Bonjour,
Vu que ta boucle n'est pas définie par avance je te propose d'utiliser parmbuff et syspbuff pour résoudre ton problème.
Fafabzh
Merci, je fais une recherche dessus. Je viens de voir également qu'il était possible de faire une proc append. Je regarde...
didinet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2008, 09h44   #4
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
Bonjour,

Moi je mettrai le merge dans la macro :
Code :
1
2
3
4
5
6
7
8
9
 
%MACRO SERIE (DATE= ); 
	DATA  CPS. an&DATE ; 
	SET CPS.TABLE  ; 
	run;
             DATA BB;
                   merge BB CPS. an&DATE ; 
             RUN;
%MEND SERIE;
Cependant il faut que BB existe avant l'execution de la macro.

Steel
__________________
Avant de poser votre question, n'oubliez pas :
FAQ, SAS DOC et de ce forum
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h26.


 
 
 
 
Partenaires

Hébergement Web