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 :

Substr écrire que ce qui est a partir du 6e caractère


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Assistante au contrôle de gestion
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistante au contrôle de gestion
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Substr écrire que ce qui est a partir du 6e caractère
    Bonjour,

    Je suis débutante en programmation; J'ai fais des recherches avant de poster en vain..

    Merci a tous ceux qui pourront m'aider.

    Voici la colonne "pnl_lib" de mon tableau :

    2020 BRII NATIONAUX (lots)
    2020 BRII REGIONAUX (unité
    2020 BRII NATIONAUX (unité
    2021 AUTRES COOPERATIONS
    2021 COMMISSIONS TRANSPORT
    2021 GUIDE D'ACHATS
    2021 OPE ANNEE EXTRA LOTO
    2021 GESTION DE FLUX
    2021 COOPERATIONS LAD
    2021 SALONS

    J'aimerais créer dans une 2e colonne "nature" juste le libellé sans l'année donc ne garder que ce qui est a partir du 6e caractère.
    exemple :colonne pnl-lib "2021 SALONS" résultat colonne nature => "SALONS"

    J'ai essayé ça :

    Code :
    Nature=substr(pnl_lib,1,6);

    mais sans succès...j'ai bien une colonne nature de créée mais elle est vide...

    je vous ai mis en pj la table et le programme Voici la table.docx

    Merci de votre aide

    Morgane

  2. #2
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    bonjour,

    la fonction indiqué devrait répondre une valeur, en l'occurence, un extract du 1er au 6ème caractère ...

    Ci-dessous la bonne syntaxe pour extraire à partir du 6ème caractère

    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
    data mesdonnees;
    infile cards dsd missover;
    input pnl_lib $30.;
    cards;
    2020 BRII NATIONAUX (lots)
    2020 BRII REGIONAUX (unité
    2020 BRII NATIONAUX (unité
    2021 AUTRES COOPERATIONS
    2021 COMMISSIONS TRANSPORT
    2021 GUIDE D'ACHATS
    2021 OPE ANNEE EXTRA LOTO
    2021 GESTION DE FLUX
    2021 COOPERATIONS LAD
    2021 SALONS
    ;
    run;
     
    data matable;
    set mesdonnees;
    nature = substr(pnl_lib,6);
    run;
    Bon courage

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Assistante au contrôle de gestion
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistante au contrôle de gestion
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci beaucoup pour votre réponse.

    J'ai testé et cela fonctionne bien ça donne ça : (voir pj)

    J'aimerais que ça fonctionne sur la table DBGES.SCEEFPNL

    Pouvez vous svp me détailler le programme car je suis débutante ...

    Merci à vous
    Cordialement

    Morgane

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Assistante au contrôle de gestion
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistante au contrôle de gestion
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    En essayant, j'ai réussi il fallait le faire en 2 fois :

    Voila ce que ça donne :

    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
    data NATURE_PUB;
    set DBGES.SCEEFPNL;
     
     
    keep fpn_cod pnl_lib annee pcg_compte;
     
    format annee 4.;
     
    i=index(pnl_lib,'20');
     
     
    if i>0 then annee=substr(pnl_lib,i,4);
    if annee>0 then output;
     
     
    run;
     
    data NATURE_PUB2;
    set NATURE_PUB;
     
    keep fpn_cod pnl_lib annee Nature pcg_compte;
     
    format Nature $30.;
     
    n=Nature;
     
    Nature=substr(pnl_lib,6);
     
    run;
    Voici le résultat :

    Nom : solution.jpg
Affichages : 74
Taille : 184,5 Ko

    Merci beaucoup pour votre aide, c'est super !!

    Cordialement,
    Morgane

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

Discussions similaires

  1. substr : écrire que ce qui est à partir du 6e caractère
    Par MorganeDAUBRAS dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/04/2021, 14h00
  2. Réponses: 1
    Dernier message: 05/11/2009, 15h19
  3. Ne garder que ce qui est entre deux plans
    Par rambc dans le forum OpenGL
    Réponses: 9
    Dernier message: 17/04/2009, 12h39
  4. ne recompiler que ce qui est nécessaire
    Par Lango dans le forum ANT
    Réponses: 1
    Dernier message: 12/10/2007, 18h02
  5. Réponses: 5
    Dernier message: 27/06/2007, 09h42

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