Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
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 03/08/2011, 09h31   #1
Invité de passage
 
Femme
Chargé d'affaire
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Espagne

Informations professionnelles :
Activité : Chargé d'affaire

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 4
Points : 4
Par défaut Codification variable temps

Bonjour,

Je me demandais s'il y a une possibilité d'afficher une date d'une certaine maniere.

J'ai des dates format 01/01/2001 et je voudrais obtenir des données mensuelles et trimestrielles donc je programme une variable quarter et extrait une variable mois. Il y a peut-etre une façon plus simple de proceder?
Enfin, ma question est: je veux que lorsque je fais une requete et je demande les resultats pour le trimestre 1 de l'an 2001 la dernière date du trimestre s'affiche 30/04/01 et pareil pour le mois, quand je demande les resultats pour janvier 2001=31/01/2001.

Je compte faire une etape data et utiliser des if mais je me demandais s'il y a une manere de programmer la date?

merci
ALEA001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 10h34   #2
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
salut

des choses comme ça ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
DATA mensuel;
do an =2000 TO 2001;
do i=1 TO 12;
IF i<12 then do;fin_mois= MDY(i+1,1,an)-1;output;end;
else do;fin_mois=MDY(1,1,an+1)-1;output;end;
end;
end;
format fin_mois date9.;
run;
 
 
DATA trimestriel;
do an =2000 TO 2001;
do i=1 TO 4;
IF i<4 then do;fin_trim= MDY(3*i+1,1,an)-1;output;end;
else do;fin_trim=MDY(1,1,an+1)-1;output;end;
end;
end;
format fin_trim date9.;
run;
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
 
                                                   Obs     an      i     fin_mois
 
                                                       1    2000     1    31JAN2000
                                                       2    2000     2    29FEB2000
                                                       3    2000     3    31MAR2000
                                                       4    2000     4    30APR2000
                                                       5    2000     5    31MAY2000
                                                       6    2000     6    30JUN2000
                                                       7    2000     7    31JUL2000
                                                       8    2000     8    31AUG2000
                                                       9    2000     9    30SEP2000
                                                      10    2000    10    31OCT2000
                                                      11    2000    11    30NOV2000
                                                      12    2000    12    31DEC2000
                                                      13    2001     1    31JAN2001
                                                      14    2001     2    28FEB2001
                                                      15    2001     3    31MAR2001
                                                      16    2001     4    30APR2001
                                                      17    2001     5    31MAY2001
                                                      18    2001     6    30JUN2001
                                                      19    2001     7    31JUL2001
                                                      20    2001     8    31AUG2001
                                                      21    2001     9    30SEP2001
                                                      22    2001    10    31OCT2001
                                                      23    2001    11    30NOV2001
                                                      24    2001    12    31DEC2001
Code :
1
2
3
4
5
6
7
8
9
10
11
 
                                                     Obs     an     i     fin_trim
 
                                                      1     2000    1    31MAR2000
                                                      2     2000    2    30JUN2000
                                                      3     2000    3    30SEP2000
                                                      4     2000    4    31DEC2000
                                                      5     2001    1    31MAR2001
                                                      6     2001    2    30JUN2001
                                                      7     2001    3    30SEP2001
                                                      8     2001    4    31DEC2001
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/08/2011, 11h36   #3
Invité de passage
 
Femme
Chargé d'affaire
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Espagne

Informations professionnelles :
Activité : Chargé d'affaire

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 4
Points : 4
Bonjour,

Le code pour formater la date au dernier jour de la periode a marché mais que pour les mois, pour le trimestre, il me renvoie le dernier jour de l'année.

Quand j'ai créé les variables mois et trimestre, j'ai créé le mois avec le code suivant

Code :
1
2
3
4
5
DATA bi_c;
SET bi_b;
Mes=month(Date);
put Mes;
run;
Ensuite, j'ai repris le code :
Code :
1
2
3
4
5
DATA TRIB.BIT1;
SET TRIB.BIT;
IF MES<12 then do;DATA_MENSUAL= MDY(MES+1,1,anny)-1;output;end;
else do;DATA_MENSUAL=MDY(1,1,anny+1)-1;output;end;
format DATA_MENSUAL dDMMYY8.;RUN;
Et j'obtiens le dernier jour de chaque mois.

Mais pour le trimestre, je l'ai deduis avec le code suivant:
Code :
1
2
3
4
5
6
7
DATA bi_d;
SET bi_c;
format Trimestre qtr.;
format datatransmissio yymmdd8.;
Trimestre=input(put(datatransmissio,8.),yymmdd8.) ;
put Trimestre=qtr.;
run;
Et lorsque je lance le code
Code :
1
2
3
4
5
6
DATA TRIB.BIT3;
SET TRIB.BIT2;
IF Trimestre<4 then do;DATA_TRIMESTRAL= MDY(3*Trimestre+1,1,anny)-1;output;end;
else do;DATA_TRIMESTRAL=MDY(1,1,anny+1)-1;output;end;
format DATA_TRIMESTRAL dDMMYY8.;
run;
Sas me renvoie au dernier jour de chaque année.

Vous avex une idée?

Merci beaucoup
ALEA001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 11h59   #4
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Citation:
Envoyé par ALEA001 Voir le message
IF Trimestre<4 then do;DATA_TRIMESTRAL= MDY(3*Trimestre+1,1,anny)-1;output;end;
else do;DATA_TRIMESTRAL=MDY(1,1,anny+1)-1;output;end;
Citation:
Envoyé par ALEA001 Voir le message
il me renvoie le dernier jour de l'année.
Citation:
Envoyé par ALEA001 Voir le message
Vous avex une idée?
C'est la condition "Trimestre<4" qui semble poser problème...

essaye avec ça pour remplacer ta troisième étape

Code :
1
2
3
4
5
 
DATA bi_d;
SET bi_c;
Trimestre=qtr(date);
run;
par contre après je ne vois pas le rapport entre ta table bi_d et ton autre table TRIB.BIT2
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 14h11   #5
Invité de passage
 
Femme
Chargé d'affaire
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Espagne

Informations professionnelles :
Activité : Chargé d'affaire

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 4
Points : 4
Merci beaucoup
ALEA001 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 12h18.


 
 
 
 
Partenaires

Hébergement Web