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 :

Numérotation des lignes [SQL]


Sujet :

SAS Base

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Par défaut Numérotation des lignes
    Bonjour,

    Je viens solliciter votre aide suite au blocage que j'ai par rapport à la gestion d'une base sas...
    la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    variable1 variable2
    madrid     zidane
    madrid     cristiano
    madrid     iker
    madrid     pepe
    madrid     sergio ramos
    barça      messi
    barça      valdes
    barça      pique         
    valence    soldado
    valence    rami
    Ce que je voudrai obtenir c'est une variable qui compte et qui numérote le nombre de joueur par equipe c'est à dire:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    variable1 variable2       variable3
    madrid     zidane          1
    madrid     cristiano       2
    madrid     iker            3
    madrid     pepe            4
    madrid     sergio ramos    5
    barça      messi           1
    barça      valdes          2
    barça      pique           3
    valence    soldado         1
    valence    rami            2
    Toute aide ou indication est la bienvenue... Je vous remercie d'avance

  2. #2
    Membre éclairé
    Femme Profil pro
    Analyste en Intelligence d'Affaires (BI)
    Inscrit en
    Avril 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste en Intelligence d'Affaires (BI)
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 245
    Par défaut Version data
    Bonjour,

    Une solution possible qui n'est pas en SQL malheureusement:
    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
     
     
    DATA test;
    INPUT 
    variable1 $
    variable2   $;
    DATALINES;
     
    madrid     zidane
    madrid     cristiano
    madrid     iker
    madrid     pepe
    madrid     sergio ramos
    barça      messi
    barça      valdes
    barça      pique         
    valence    soldado
    valence    rami 
    ;
    RUN;
    proc sort data=test;
    by variable1;
    run;
     
    DATA test2;
    set test ; 
    BY variable1;
    IF FIRST.variable1 then variable3=0;
    variable3+1;
    output;
    RUN;
    Pourvu que cela te soit utile.

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Bjr,

    La fonction monotonic() sert à ça , sauf qu'elle ne fonctionne que sur les versions SAS 9.0 et plus ...

    Cdt

  4. #4
    Membre éclairé
    Femme Profil pro
    Analyste en Intelligence d'Affaires (BI)
    Inscrit en
    Avril 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste en Intelligence d'Affaires (BI)
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 245
    Par défaut
    Citation Envoyé par lelensois16 Voir le message
    Bjr,

    La fonction monotonic() sert à ça , sauf qu'elle ne fonctionne que sur les versions SAS 9.0 et plus ...

    Cdt
    Bonjour,

    La fonction monotonic() va bien générer des numéros de ligne, après tu fais comment pour ré initialiser ce numéro à chaque changement de variable1 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Proc SQL;
    SELECT variable1 , variable2, monotonic() as variable3
    FROM TEST ;
    QUIT;
    Résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     
    variable1	variable2	variable3
    madrid	zidane	1
    madrid	cristian	2
    madrid	iker	3
    madrid	pepe	4
    madrid	sergio	5
    barça	messi	6
    barça	valdes	7
    barça	pique	8
    valence	soldado	9
    valence	rami	10

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Bjr,

    Il suffit de relancer la requête en créant une table :

    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
    data test ;  
    input var1 $ var2 $  ; 
    cards ; 
    Keita 10
    Messi 11 
    Inesta 12
    Xavi 13
    ; 
    run ; 
     
    proc sql ; 
    create table test as 
    select var1 , var2 , monotonic() as var3 
    from test ; 
    quit ; 
     
    proc sort data = test ; 
    by descending var1 ; 
    run ; 
     
    proc sql ; 
    create table test as 
    select var1 , var2 ,var3 , monotonic() as new_var3 
    from test ; 
    quit ;
    Cdt

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Par défaut
    je ne crois pas que la fonction monotonic() répond à ce problème.

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

Discussions similaires

  1. Numérotation des lignes
    Par jcdidier dans le forum iReport
    Réponses: 2
    Dernier message: 27/03/2007, 09h43
  2. Numérotation des lignes dans une requête
    Par zoom61 dans le forum Access
    Réponses: 5
    Dernier message: 24/10/2006, 10h35
  3. Numérotation des lignes de code
    Par charleshbo dans le forum Access
    Réponses: 5
    Dernier message: 15/03/2006, 14h11
  4. [XSLT] numérotation des lignes du tableau résultat
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/02/2006, 09h48
  5. numérotation des lignes ...
    Par HellGee dans le forum MFC
    Réponses: 2
    Dernier message: 29/03/2005, 10h21

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