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 :

Supprimer tout une série


Sujet :

SAS Base

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut Supprimer tout une série
    Bonjour,

    J'aurais une petite question :

    J'ai l tableau suivant :
    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
     
    Elève	Note	Date
    x1	>10	datew1
    x1	<10	datew2
    x1	<10	datew3
    x1	<10	datew4
    x2	>10	datex1
    x2	>10	datex2
    x2	<10	datex3
    x2	>10	datex4
    x3	<10	datey1
    x3	<10	datey2
    x3	>10	datey3
    x4	<10	datz1
    x4	<10	datz2
    x4	>10	datz3
    x4	<10	datz4
    x4	<10	datz5
    J'aimerais pouvoir garder uniquement les élèves dont la date la plus récente est "<10" et ainsi obtenir le tableau suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Elève	Note	Date
    x1	>10	datew1
    x1	<10	datew2
    x1	<10	datew3
    x1	<10	datew4
    x4	<10	datz1
    x4	<10	datz2
    x4	>10	datz3
    x4	<10	datz4
    x4	<10	datz5
    Les élèves x2 et x3 ont été supprimés, du fait que leurs dates de notation les plus récentes (respectivement datex4 et datey3) correspondaient à des notes ">10".

    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Par défaut
    tu t'en es pas sorti avec ton problème d'hier finalement?

    voila une solution pour ce problème... ca doit convenir pour celui d'aujourd'hui aussi

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    data test;
    input eleve $ note $ date mesure ; 
    informat date ddmmyy10.;
    format date ddmmyy10.;
    cards; 
    x1 <10 20/03/2006 1
    x1 >10 20/07/2007 2
    x1 >10 20/08/2007 3
    x1 <10 18/09/2008 4
    x1 <10 20/03/2009 5
    x2 <10 20/03/2006 1
    x2 >10 20/07/2007 2
    x2 >10 20/08/2007 3
    x2 <10 18/09/2008 4
    x2 >10 20/03/2009 5
    x3 <10 20/03/2006 1
    x3 >10 20/07/2007 2
    x3 >10 20/08/2007 3
    x3 >10 18/09/2008 4
    x3 <10 20/03/2009 5
    ;
    run;
     
    proc sql;
    create table test2(where=(mesure>meas2)) as
    select A.*, max(B.mesure) as meas2
    from test as A full join test(where=(note in (">10"))) as b
    on a.eleve=b.eleve and a.mesure=b.mesure
    group by a.eleve
    order by a.eleve, a.mesure
    ;
    quit;
     
    data test3(drop=meas2);
    set test2;
    by eleve;
    if first.eleve;
    run;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    Merci manoutz !
    Oui, j'ai réussi à corriger mon petit bugg, il était principalement dû à ma variable d'incrémentation mal définie, et j'avais oublié un %EVAL lorsque j'effectuais l'addition entre une variable et un chiffre...

    Je te remercie pour ton aide, je n'avais pas pensé à faire un proc SQL avec jointure...

    Je te remercie pour ton aide une fois de plus ! Je vais tester tout ça !

    A bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer toutes les données d'une base
    Par yopyopyop dans le forum Oracle
    Réponses: 13
    Dernier message: 21/06/2006, 13h35
  2. Réponses: 2
    Dernier message: 08/06/2006, 17h42
  3. Réponses: 3
    Dernier message: 14/03/2006, 11h34
  4. Supprimer TOUTES les barres d'outils d'une application
    Par djefff75 dans le forum Access
    Réponses: 5
    Dernier message: 26/02/2006, 14h03
  5. Supprimer TOUTES les tables d"une bd
    Par perlgirl dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/12/2004, 12h12

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