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 10/10/2011, 20h48   #1
Invité régulier
 
Femme
Inscription : octobre 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 30
Points : 7
Points : 7
Par défaut Prolongement d'une ligne d'une table

Bonsoir a tous,

J'ai un ptit souci dans SAS et j'espère que qq un pourra m'aider !

Exemple :

Date mensuelle Client. Exposition
31/01/2009. AAA. 100
28/02/2009. AAA. 80
...
31/12/2009. AAA. 0

Or mon fichier continue jusqu'à la situation la plus récente, (par exemple 30/09/2011) et j'aimerais que la dernière ligne connue par client soit répétée mois par mois jusqu'à aujourd'hui.

On obtiendrait alors :

31/01/2009. AAA. 100
28/02/2009. AAA. 80
31/03/2009. AAA. 60
Etc mois par mois
31/12/2009. AAA. 0. (dernière situation connue du client) et donc :
31/01/2010. AAA. 0
29/02/2010. AAA. 0
31/03/2010. AAA. 0
Etc mois par mois jusqu'à la date mensuelle la plus récente


En espérant que ce soit clair

Merci d'avance pour le coup de main !!!
Chicou17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 21h09   #2
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Tu rajouteras un BY client et tu pourras faire mieux à partir de ce truc

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DATA client;
input date :ddmmyy10. client :$ exposition;
format date date9.;
datalines;
31/01/2009 AAA 100
28/02/2009 AAA 80
31/12/2009 AAA 0
;
run;
 
DATA test;
SET client end=fin;
IF NOT fin then output;
IF fin then do;
do date=date TO today() BY 20;
date = intnx('month',date,0,'end');
client=client;
exposition=exposition; output;
end;
end;
run;
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 21h22   #3
Invité régulier
 
Femme
Inscription : octobre 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 30
Points : 7
Points : 7
Ok cool merci bcp

J essaierais demain matin des que j arrive a mon boulot !

Encore merciiiiii
Chicou17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h06   #4
Invité régulier
 
Femme
Inscription : octobre 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 30
Points : 7
Points : 7
Bonjour datametric,

J'ai passé des heures à essayer d'intégrer ton programme mais il ne marche que pour le dernier client de ma table.

Or dans ma table globale, j'ai des milliers de clients et j'ai besoin de faire des prolongements pour chacun de ces clients, et non pas seulement sur le dernier client de la table.

Même en ajoutant un "BY client", cela ne fonctionne pas ...

Peux tu m'éclairer un peu ???

D'avance merci beaucoup !!!!
Chicou17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h19   #5
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 011
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 011
Points : 1 712
Points : 1 712
Hello,
essaies ceci :
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
 
DATA client;
input date :ddmmyy10. client :$ exposition;
format date date9.;
datalines;
31/01/2009 AAA 100
28/02/2009 AAA 80
31/12/2009 AAA 0
31/01/2008 BBB 100
28/02/2009 BBB 80
31/12/2009 BBB 0
;
run;
 
DATA test;
SET client end=fin;
BY client;
IF NOT last.client then output;
IF last.client then do;
do date=date TO today() BY 20;
date = intnx('month',date,0,'end');
client=client;
exposition=exposition; output;
end;
end;
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 19h21   #6
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Ben oui

le BY client fonctionne...
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 07h28   #7
Invité régulier
 
Femme
Inscription : octobre 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : octobre 2011
Messages : 30
Points : 7
Points : 7
Bonjour,

Ce nouveau programme semble fonctionner !!!!
Faut encore que je vérifie plus en détails mais à première vue, ça a l'air résolu !

PS : datametric, en ajoutant uniquement le "by client" dans ton programme, ça ne fonctionnait pas. Il fallait encore préciser à SAS le "last.client" pour qu'il puisse m'ajouter des lignes pour chacun des clients.

Un grand merci à vous deux pour le coup de main !!!!
Chicou17 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 02h42.


 
 
 
 
Partenaires

Hébergement Web