Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2011, 21h34   #1
Invité de passage
 
Femme
Consultant CRM
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Consultant CRM
Secteur : Finance

Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 1
Points : 1
Par défaut cumul sur 12 années glissantes

Bonjour,
Je dois fournir le cumul des montants par année et par mois sur 12 mois glissants.

Voici une partie des données que je dois exploiter et la variable cumul_12_MOIS que je souhaite obtenir.

Je voudrais obtenir le cumul sur 12 mois glissants avec une requête mais je n'y arrive pas...

Merci d'avance pour votre réponse.

Annee mois montant cumul_12_MOIS
2009 1 3000
2009 2 120
2009 3 900
2009 4 8
2009 5 32
2009 6 8
2009 7 117
2009 8 128
2009 9 204
2009 10 208
2009 11 169
2009 12 122 5016
2010 1 159 2175
2010 2 67 2122
2010 3 79 1301
walpi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 08h05   #2
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
Bonjour.
Il te faut un RETAIN pour conserver ta somme glissante d'une observation à l'autre, et une fonction LAG12 pour retirer de la somme glissante le montant à M-13 devenu inutile.
Code :
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
DATA work.glisse ;
  INPUT annee mois montant ;
DATALINES ;
2009 1 3000
2009 2 120
2009 3 900
2009 4 8
2009 5 32
2009 6 8
2009 7 117
2009 8 128
2009 9 204
2009 10 208
2009 11 169
2009 12 122
2010 1 159
2010 2 67
2010 3 79
;
RUN ;
DATA work.glisse (DROP=cumul) ;
  SET work.glisse ;
  RETAIN cumul ;
  cumul = SUM(cumul, montant, -LAG12(montant)) ;
  IF _N_ < 12 THEN cumul_12_mois = . ;
  ELSE cumul_12_mois = cumul ;
RUN ;
Bon courage.
Olivier

PS : je crois qu'il y avait eu un sujet similaire à propos des moyennes mobiles il n'y a pas longtemps (1 mois maxi). Les solutions en code sont similaires.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 21h03   #3
Invité de passage
 
Femme
Consultant CRM
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Consultant CRM
Secteur : Finance

Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 1
Points : 1
cool c'est exactement ce que je voulais!!
merci
walpi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h28.


 
 
 
 
Partenaires

Hébergement Web