J'ai une macro qui effectue une proc sql et place le résultat dans une macro-variable globale :
Cette macro est lancée par un call execute dans une étape data.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 %macro FoundInTable(MyTable, MyVar, MyValue) / store; %global NbOcc; %let NbOcc=10; /* Recherche d'une occurence &MyValue dans &MyTableRef pour la variable &MyVar */ %if &MyValue ne '' %then %do; proc sql noprint; SELECT COUNT(1) INTO :NbOcc FROM &MyTable WHERE &MyVar=%STR(%')&MyValue%STR(%'); quit; %end; %mend;
Même en intercalant unje n'arrive pas à récupérer le résultat de la proc sql;
Code : Sélectionner tout - Visualiser dans une fenêtre à part data _null_;run;
là j'ai initialisé NbOcc à 10 pour voir et je récupère 10 au lieu du résultat escompté (1, vérifié quand j'exécute la proc sql toute seule).
En utilisantau retour de la macro je récupère . à la place de 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Resolve
Verriez-vous un moyen simple de "sortir" cette valeur de la macro ?
Sinon je mettrai le code de la proc sql en dehors de la macro.
Merci.
![]()
Partager