Bonjour,
je suis confronté à un soucis sur un code SAS. Il est assez complexe à expliquer mais j'espère fortement que vous allez me comprendre.
1 2 3 4 5 6 7 8
| proc freq noprint data=base_fin ;
table mois /out=freq ;
run;
data _null_;
set freq(where=(mois ne ""));
call symput("N",_N_) ;
call symput("mac"||left(put(_N_,2.)),mois) ;
run; |
grâce à ce programme j'ai pu récupérer les éléments de la table Freq dans la macro variable &mac qui sont des dates du format Annéesmois : 201707,201708 etc...
dans une proc report je souhaite parcourir ces éléments (ces dates qui sont déjà en colonne dans ma table) j'utilise le code suivant :
%do i=&mac1 %to &mac1+&N-1; Mois_&i %end ;
pour dire en gros que le i parcourant mac1 à mac1+11 (un truc sur 12 mois quoi).*
résultat que je souhaite avoir c'est :
201807 201708 201709 201710 201711 201712 201801 201802 ---------
mais sauf que ce que j'obtiens c'est
201807 201708 201709 201710 201711 201712 201713 201714 ---------
c'est comme si ma macrovariable
pourtant quand je vérifie j'ai bien &mac7=201801.
je ne sais pas comment régler ce détails..
PS : difficile à expliquer comme ça mais j'espère que vous me comprenez et pourrez m'aider.
Merci d'avance pour vos réponses.
Partager