|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Bonjour à tous,
Voici mon souci : dans ma table, j'ai des milliers de clients avec leurs situations mensuelles (dt_situation). Mais pour certains de ces clients, il peut y avoir un trou entre deux dates mensuelles et j'aimerais pouvoir combler ce trou en ajoutant les situations mensuelles manquantes. Imaginons que pour une client donné, j'ai sa situation de janvier 2009 jusque août 2009, et de novembre 2009 à décembre 2010. Il me manque donc les situations mensuelles de septembre et d'octobre que j'aimerais pouvoir ajouter en conservant pour ces deux nouveaux mois les informations observées (ex : solde etc ...) du mois d'août 2009. Qq aurait-il des idées ??? Merci par avance !!!! |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() statisticien Inscription : mai 2011 Messages : 212 ![]() |
Bonjour,
Ce ne doit pas être pas trop compliqué à faire 1) tester si la situation mensuelle est manquante (en construisant avec un retain un mois "attendu" qu'on utilise dans un test if mois_courant=mois_attendu alors OK sinon code de génération de la situation mensuelle manquante) Je dis ça rapidement, mais d'autres tests pourraient être imaginés. 2) reprendre pour le mois manquant la situation mensuelle courante M-1 Pourrait on en savoir plus sur ta variable dt_situation , de quelle type est elle ? A quoi ressemble-t-elle ? |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Bonjour,
Merci pour ta réponse. Ma variable "dt_situation" est de la forme "31/01/2009" ddmmyy10. Mais comment lui définir un mois attendu ? En partant de la 1ère date de situation présente pour un compte et en incrémentant les mois suivants attendus en faisant "dt_situation" + 1 mois ? Ensuite en comparant mois attendu et mois observé, j'identife les mois manquants et les remplace par les mois attendus ? Mon souci est plutôt en terme de language SAS en fait ... Pour calculer le mois attendu, je peux faire ca via la fontion INTNX je pense, ça devrait fonctionner. Mais comment lui dire d'ajouter les situations manquantes identifées entre deux dates de situation observées tout en lui demandant de garder les informations du mois précédent ??? Merci pour ton aide !! |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Jérémy NoëlConsultant Support Client SAS Inscription : mai 2011 Messages : 38 ![]() |
Bonjour,
Dans une autre table tu crées une variable de date (portant le même nom et avec le même format que celle de ta table initiale) via une boucle simple. Ensuite tu tries tes deux tables par ta variable de date. Enfin tu merges en lui indiquant de garder toutes les obersavations de ta table contenant uniquement la date. Je te fais un bout de code pour l'exemple d'ici 15 minutes. |
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() Jérémy NoëlConsultant Support Client SAS Inscription : mai 2011 Messages : 38 ![]() |
Voici le code promis:
Code :
|
||
|
|
00
|
|
|
#6 | ||
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
Voici avec une variante de la proc FREQ. Je considère que les dates sont reconstituées à partir du jeu de données de tous les clients. Après tu peux t'amuser avec RETAIN, LAG, CROSS JOIN ...
Code :
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
||
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Bonjour,
Désolé pour cette réponse tardive mais je n'ai pas pu tester tout de suite vos solutions. Je viens de le faire et cela fonctionne !!!! Un grand merci !!! ![]() Bonne journée. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com