IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Sélectionner la date antérieure la plus proche d'une date de référence


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Services de proximité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut Sélectionner la date antérieure la plus proche d'une date de référence
    Bonjour à tous/toutes,

    J'ai dans ma table SAS une date de référence (dt_event) et environ 100 dates, qui n'ont pas forcément le même code (par ex leurs codes ne sont pas de dt_1 à dt_100).

    J'aimerai, pour chaque ligne, sélectionner la date qui se trouve juste avant la date de mon événement, ou le jour même.

    Je vous mets un exemple de ma table avec ma date de référence, juste 6 autres dates et le résultat que j'aimerai obtenir.
    Nom : Ex tableau.jpg
Affichages : 421
Taille : 76,4 Ko

    J'aimerai éviter de faire une centaine de conditions if. Avec 5/6 dates ça va mais sur une centaine ça risque compliqué...
    J'ai essayé de bricoler un peu avec les fonctions max mais je n'obtiens pas ce que je souhaite.

    Auriez vous une solution?

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant Finance/Assurance
    Inscrit en
    Décembre 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Finance/Assurance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 198
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    Une solution possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    data test;
    input num_event (dt_event  dt_ttt dt_lab dt_disc dt_tat) (:ddmmyy10.);
    format dt_event dt_ttt  dt_lab dt_disc dt_tat ddmmyy10.;
    cards;
    1 28/05/2017 26/05/2017 27/05/2017 26/05/2017 17/05/2017 15/05/2017
    1 20/05/2017 26/05/2017 27/05/2017 26/05/2017 17/05/2017 15/05/2017 
    1 20/05/2017 26/05/2017 27/05/2017 21/05/2017 17/05/2017 15/05/2017 
    ; run;
     
    data test2 (drop = i);
    set test (rename = (dt_event = date_event));
    array dte dt_:;
    call sortn(of dte{*});
    Do i = 1 to dim(dte);
    	If dte{i} > date_event then leave;
    	resultat = dte{i};
    end;
    format resultat ddmmyy10.;
    run;
    Flo00154

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Services de proximité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Merci pour la réponse ça fonctionne parfaitement.

    Je vais maintenant m'atteler à bien comprendre ce petit bout de code et voir comment je peux l'adapter car dans la réalité toutes mes variables ne commencent pas par dt_ et ont toutes des noms bien différents (au pire je les renommerai).

    Merci encore.

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/03/2012, 13h47
  2. Réponses: 13
    Dernier message: 23/06/2011, 13h36
  3. sélectionner l'enregistrement supérieur le plus proche
    Par JulienCEA dans le forum Langage SQL
    Réponses: 10
    Dernier message: 08/06/2010, 14h10
  4. Enregistrement le plus proche de la date
    Par gudul dans le forum Langage SQL
    Réponses: 10
    Dernier message: 27/10/2008, 10h18
  5. [DEBUTANT]recherche de date - heure la plus proche
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/06/2007, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo