Bonjour,
je cherche à modifier sans succès un code. Le code ci-dessous permet de cumuler par mois tous les montants versés à des dates antérieures, le mois en cours compris (janvier=10+15=25, fevrier=janvier+100=125)
Je cherche à effectuer un simple cumul mensuel (le montant d'un mois est égal au cumul des montants du mois, les montants des mois précédents ne sont pas pris en compte).(janvier=10+15=25, fevrier=100)
Merci pour votre aide.
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
23
24
25
26
27
28
29 Data entree ; format Date_Reglement Date_Rgl_fin_mois ddmmyy10.;id='0000000001'; Date_Reglement= '01JAN2008'd; Date_Rgl_fin_mois ='31JAN2008'd; Montant_Reglement=10.0; output; Date_Reglement= '05JAN2008'd; Date_Rgl_fin_mois ='31JAN2008'd; Montant_Reglement=15.0; output; Date_Reglement= '07FEB2008'd; Date_Rgl_fin_mois ='28FEB2008'd; Montant_Reglement=100.0; output; Date_Reglement= '09MAR2008'd; Date_Rgl_fin_mois ='31MAR2008'd; Montant_Reglement=150.0; output; Date_Reglement= '15MAR2008'd; Date_Rgl_fin_mois ='31MAR2008'd; Montant_Reglement=210.0; output; id='0000000002'; Date_Reglement= '01JAN2008'd; Date_Rgl_fin_mois ='31JAN2008'd; Montant_Reglement=410.0; output; Date_Reglement= '05JAN2008'd; Date_Rgl_fin_mois ='31JAN2008'd; Montant_Reglement=415.0; output; Date_Reglement= '07FEB2008'd; Date_Rgl_fin_mois ='28FEB2008'd; Montant_Reglement=4100.0; output; Date_Reglement= '09MAR2008'd; Date_Rgl_fin_mois ='31MAR2008'd; Montant_Reglement=4150.0; output; Date_Reglement= '15MAR2008'd; Date_Rgl_fin_mois ='31MAR2008'd; Montant_Reglement=4210.0; output; run; data sortie(rename=(cum=cumul_rgl) drop=Montant_Reglement); set entree; by id Date_Rgl_fin_mois; retain cum; if first.nogs then do; cum=Montant_Reglement; if last.id or last.Date_Rgl_fin_mois then output; end; else do; cum=sum(cum, Montant_Reglement); if last.Date_Rgl_fin_mois then output; end; run;
Partager