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 :

Boucle if else if [DATA]


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingénieur R&D
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Boucle if else if
    Bonjour,

    J'ai un problème avec une succession de if - else if :

    j'ai la table suivante Feed1:

    FEED1.xlsx

    j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data error_feed;
    set feed1;
    if treatment='T1' and Conso_P2<>'0' or Conso_P3<> '0' or Conso_P4<>'0' then error='error';
    else if treatment='T2' and Conso_P1<>'0' or Conso_P3<> '0' or Conso_P4<>'0' then error='error';
    else if treatment='T3' and Conso_P1<>'0' or Conso_P2<> '0' or Conso_P4<>'0' then error='error';
    else if treatment='T4' and Conso_P1<>'0' or Conso_P2<> '0' or Conso_P3<>'0' then error='error';
    else do ;
    end;
    run;
    Je souhaite faire apparaitre une erreur si la colonne Conso_P1 ou P2 ou P3 ou P4 contient des éléments (>0), alors que ça ne correspond pas au traitement demandé (P1 = T1, P2 = T2, ...).
    il doit manquer quelque chose dans mon code, car cela fonctionne bien pour la 1ère ligne concernant le T1, mais dès que je passe à T2, T3 ou T4, il considère que tout est en erreur (voir fichier sortie error_feed).
    ERROR_FEED.xlsx

    Merci de votre aide !

    Bonne journée

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Pour que le contrôle soit bien réalisé, il faut avoir deux conditions (donc deux IF). La première est pour le traitement et la seconde pour la consommation. Voici ton code rectifié, à vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    data error_feed;
    set feed1;
    if treatment='T1' then do ; if Conso_P2<>'0' or Conso_P3<> '0' or Conso_P4<>'0' then error='error'; end ;
    if treatment='T2' then do ; if Conso_P1<>'0' or Conso_P3<> '0' or Conso_P4<>'0' then error='error'; end ;
    if treatment='T3' then do ; if Conso_P1<>'0' or Conso_P2<> '0' or Conso_P4<>'0' then error='error'; end ;
    if treatment='T4' then do ; if Conso_P1<>'0' or Conso_P2<> '0' or Conso_P3<>'0' then error='error'; end ;
    run;
    Bon Courage
    Ward

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Ingénieur R&D
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci, ça fonctionne !

    Bonne soirée

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

Discussions similaires

  1. Question boucle while/else
    Par Stoos dans le forum Général Python
    Réponses: 3
    Dernier message: 08/05/2012, 20h36
  2. Boucle if..else / C#
    Par jackasse dans le forum C#
    Réponses: 5
    Dernier message: 29/03/2011, 09h44
  3. [MySQL] Imbrication de boucle if /else et while
    Par jmtrivia dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/04/2009, 12h11
  4. [Conception] Pb boucle if else dans formulaire
    Par urbalk dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 16/05/2007, 17h03
  5. [MySQL] Problème boucle if else
    Par urbalk dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/04/2007, 16h46

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