Bonjour à tous,
Je vais tenter d exposer mon problème le plus clairement possible:
Je veux faire une boucle conditionnelle, afin d'indiquer à SAS de créer telle ou telle table.
Etape 1: Je crée mes bornes de dates
Avec ce code j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 %let periode= 120141200; PROC SQL; SELECT var1 into:per FROM matable WHERE var2=&periode ; QUIT; %let mois_debut = %sysfunc(putn(%sysfunc(intnx(month,"&per"d, 1,begin)),date9.)); %let mois_fin = %sysfunc(putn(%sysfunc(intnx(month,"&mois_debut"d,1,end)),date9.));
mois_debut= 01JAN2015
mois_fin = 28FEB2015
Etape 2 : Je crée mes tables en fonction de ces dates
Plusieurs choses que je ne comprends pas :
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
16
17
18
19 %MACRO POSTMIGR; %IF "&mois_debut"d GE "01APR2015"d OR "&mois_fin"d GE "01APR2015"d %THEN %DO; ....code de création de ma table... %END; %MEND; %POSTMIGR; %MACRO PREMIGR; %IF "&mois_debut"d LT "01APR2015" %THEN %DO; ....code de création de ma table... %END; %MEND; %PREMIGR;
1) quelques soient les valeurs de mois_debut et mois_fin, la macro %POSTMIGR crée la table
2) la macro %PREMIGR ne crée jamais de table, même si j'enlève le filtre des dates.
Si vous avez des pistes je suis preneur, merci d'avance et bon week end
Partager