Bonjour,
J'apprends actuellement à utiliser SAS (via google principalement) suite à une prise de fonctions.
On me demande un tableau de bord sur 12 mois glissant.
En recherchant sur internet, voici ce que j'ai réussi à faire.
...etc jusque m-1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 %let mois_douze =%eval(%sysfunc(intnx(month,%sysfunc(date()),-12,beginning))); %let mois_douze =%eval(%sysfunc(intnx(month,%sysfunc(date()),-12,end))) ; %let mois_onze =%eval(%sysfunc(intnx(month,%sysfunc(date()),-11,beginning))); %let mois_onze =%eval(%sysfunc(intnx(month,%sysfunc(date()),-11,end))) ;
Puis :
etc...
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
20
21
22 proc sql; create table mois12 as select var1, var2, count(var3) as Mois_douze from gra.sdsui where var1 in ('xxx', 'xxx', 'xxx', 'xxx') and var2= (&mois_douze.) group by var1; quit; proc sql; create table mois11 as select var1, var2, count(var3) as Mois_onze from gra.sdsui where var1 in ('xxx', 'xxx', 'xxx', 'xxx') and var2= (&mois_onze.) group by var1; quit; data mensuel; merge mois12 mois11; run;
Ca ne me paraît vraiment pas optimum comme solution. D'autant que je souhaiterais que count(var3) soit automatiquement remplacé par le mois auquel il se réfère (j'ai essayé de remplacer par (&mois_douze.), mais ça m'affiche une date en 5 chiffres).
Je vous remercie d'avance.
Partager