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 :

Aide sur la réalisation d'un code


Sujet :

SAS Base

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut Aide sur la réalisation d'un code
    Bonjour,

    Je possède le jeu de données suivant :

    Nom : developpez_net.png
Affichages : 175
Taille : 22,4 Ko

    Certains enregistrements possèdent plusieurs fois le même CODE_IRIS.
    L'objectif est alors de conserver une valeur par CODE_IRIS.

    Pour cela, deux règles importantes dictées par les instructions suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Si, CODE_IRIS est unique
    	Alors, on conserve l'enregistrement
    Sinon,
    	Si Max(NB_CLIENTS) par CODE_IRIS est unique
    		Alors, on conserve uniquement l'enregistrement correspondant
    	Sinon, on conserve l'enregistrement possédant Max(CA)

    En surbrillance, un exemple de CODE_IRIS non unique avec le même nombre de clients par ATC.
    Le but est de conserver uniquement l'enregistrement ayant le meilleur CA (CODE_ATC=1555 et CA_ATC=5,7 en l'occurence).


    Pourriez-vous m'aider sur la traduction en langage SAS de ce problème ?

    Merci par avance de vos retour.
    Bien cordialement,

    Baptiste

  2. #2
    Membre émérite
    Avatar de Haache
    Homme Profil pro
    Doctorant & Ingénieur Statiaticien Economiste
    Inscrit en
    Mars 2014
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Doctorant & Ingénieur Statiaticien Economiste

    Informations forums :
    Inscription : Mars 2014
    Messages : 349
    Billets dans le blog
    8
    Par défaut
    Bonjour
    Message très bien compris avec un algorithme très clair et bien détaillé.
    Mais une chose n'est pas prise en compte.
    Et s'il y a 3 lignes avec les même codes et deux d'entre elles ont le même nombre d'enfants qui est en même temps le max.
    Est ce qu'on va regarder la max des CA de ces deux ou des trois. Parce que le max des CA peut être celui qui a le nombre d'enfant minimal.
    J'attends votre réponse pour proposer un code.
    • Faites un tour sur mon siteweb professionnel www.aristideelysee.16mb.com Des codes dans la section "media et code" pouvant vous aider que vous pouvez aussi partager sur les réseaux sociaux.
    • Visiter mon blog en cliquant ici! Des techniques, astuces et macros pour l'analyse quantitative.

  3. #3
    Membre émérite
    Avatar de Haache
    Homme Profil pro
    Doctorant & Ingénieur Statiaticien Economiste
    Inscrit en
    Mars 2014
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Doctorant & Ingénieur Statiaticien Economiste

    Informations forums :
    Inscription : Mars 2014
    Messages : 349
    Billets dans le blog
    8
    Par défaut
    Pour être beaucoup plus clair, analysons cet exemple
    Nom : Capture.PNG
Affichages : 172
Taille : 6,4 Ko
    Regardons les trois lignes mises en surbrillance.
    On a les mêmes code le Max de Nb client n'est pas aussi unique.
    Si on retient le max de CA parmi les deux qui ont le max de Nb enfant on va retenir celui qui a CA=12
    Mais si, on regarde la Max de CA parmi les trois, on aura CA=15. Lequel des deux résultats correspond à vos attentes.
    • Faites un tour sur mon siteweb professionnel www.aristideelysee.16mb.com Des codes dans la section "media et code" pouvant vous aider que vous pouvez aussi partager sur les réseaux sociaux.
    • Visiter mon blog en cliquant ici! Des techniques, astuces et macros pour l'analyse quantitative.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    Bonjour Haache,

    Merci beaucoup d'avoir pris le temps de répondre à ma question.

    J'ai fini par trouver la solution qui consistait à effectuer, à l'aide d'une PROC SORT, un premier tri décroissant sur le champ NB_CLIENTS, puis un second tri décroissant sur le champ CA.
    Suite à quoi, on récupère, à l'aide d'un IF FIRST la 1ère ligne par IRIS qui correspond donc au résultat souhaité : si le nombre de clients maximum n'est pas unique, le CA maximum est sélectionné.

    Soit, le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PROC SORT DATA = DONNEES.IRIS_ATC
    OUT = DONNEES.IRIS_ATC_TRI ;
    BY CODE_IRIS
    DESCENDING NB_CLIENTS DESCENDING CA_ATC ;
    RUN ;
     
    DATA DONNEES.IRIS_FINAL ;
    SET DONNEES.IRIS_ATC_TRI ;
    BY CODE_IRIS ;
    IF FIRST.CODE_IRIS THEN OUTPUT ;
    RUN ;
    Bonne journée.
    Bien cordialement,

    Baptiste

Discussions similaires

  1. Apropos des Transactions au sein d'un Stored Procedure
    Par Sarbacane dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 16/11/2004, 08h21
  2. [VB6] Interrompre toutes procédures
    Par lutin_vert dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/09/2002, 11h39
  3. Declaration Type ds une procedure
    Par Qwazerty dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2002, 09h09
  4. [TP]code asm dans une procedure
    Par M.Dlb dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/08/2002, 20h43
  5. Reprendre une procedure dans une autre ?
    Par Poisson Rouge dans le forum Langage
    Réponses: 3
    Dernier message: 17/07/2002, 22h51

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