|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2008 Messages : 32 ![]() |
Bonjour à tous,
J'ai visité la FAQ avant de poser ma question, car je m'en sors pas du tout, étant débutante en SAS.:? J'ai dans ma base données qui couvre 3 années (2005, 2006, 2007), plusieurs variables, dont une variable 'dateHA' de format numérique (aaaamm) ex: 200501, 200703, ect. ; et une variable 'dateREMBOURS' de format numérique (aaaamm). Je veux selectionner certaines données, telle que, Code :
Ne voulant pas avoir à faire des quantités de lignes J'ai voulu mettre en place un programme qui permette de sélectionner, pour dateHA=aaaamm, les 27 mois de dateREMBOURS allant de aaaamm à + 27 mois. J'ai tenté de faire un programme de ce type, mais ne fonctionne pas Code :
Merci par avance pour votre aide !!!! |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() |
je n'ai jamais travaillé sur les dates avec ce format.
Essaye la syntaxe suivante '200501'd : SAS reconnait dans la chaine de caractère une date. Code :
|
||
|
|
00
|
|
|
#3 | |||
|
Membre confirmé
![]() Inscription : avril 2008 Messages : 233 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : avril 2008 Messages : 233 ![]() |
|
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() |
Code :
|
||
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() |
Citation:
if a > aaaamm+27 SAS interpretera aaaamm+27 comme le nombre de jour entre le 1JAN1960 et ajourd'hui. |
|
|
|
00
|
|
|
#7 | |
|
Membre confirmé
![]() Inscription : avril 2008 Messages : 233 ![]() |
Citation:
Par contre avec +27 j'ai dit une bêtise :-) 27 mois pour ces variables c'est la différence de 203 (2 ans et 3 mois) pour les nombres qui finissent par 01-09, et la différence de 291 (3 ans moins 9 mois) pour les nombres qui finissent par 10-12. On remplace la conversion des dates avec le formatage par les opérations arithmétiques (peu lisibles, mais bon...) |
|
|
|
00
|
|
|
#8 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2008 Messages : 32 ![]() |
Citation:
En faite en selectionnant la variable 200501+27, je pensais obtenir 200703 mais en faite j'obtiens 200528. J'arrive difficilement à appliquer ce que vous me dites. Je me réexplique : Ci-joint ma base (réduite) ex.xls avec les 3 variables : dateHA dateREMB DEPENSES Je réussis à partir d'un programme à couvrir le champ qui m'interresse. C'est à dire pour chaque dateHA, correspond une dateREMB qui va de dateHA à +27 mois. Exemple pour dateHA = 200506, je dois retenir dans ma base que dateREMB compris entre 200506 et 200709. Et ainsi de suite Effectivement, je voulais faire ça en tant que macros, mais pour cela il me faut je pense transformer mes variables numériques dateHA et dateREMB en format date. Ci-dessous une partie du programme que j'avais déjà envoyé dans le dernier message Code :
|
|||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() |
Est ce que c'est possible d'envoyer une partie de la table?
|
|
|
00
|
|
|
#10 | |||
|
Membre confirmé
![]() Inscription : avril 2008 Messages : 233 ![]() |
Citation:
Code :
Ce qui explique la traduction de 27 par soit 203 (2 * 100 + 3) soit par 291 (3 * 100 - 9). |
|||
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() ![]() |
La fonction intnx te permet d'ajouter à une date des mois année ou jour d'une manière très facile
|
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : juillet 2006 Messages : 2 662 ![]() |
Pensez au tag
quand un problème est réglé
__________________
la culture c'est comme la confiture moins on en a plus on l'étale. Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi Mes tutos |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com