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 :

Traduction étape data en proc SQL


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 20
    Points
    20
    Par défaut Traduction étape data en proc SQL
    Bonjour,
    j'ai une étape data du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data toto;
    set toto;
    if var1 = "a" and var2 = "b" then var3 = 10;
    run;
    Ma question est comment traduire cela avec une proc sql car je peux pas faire d'étape data à cause de l'index.

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    bonjour,

    voici la solution:
    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
    data toto;
    input var1 $ var2 $;
    cards;
    a b
    c d
    a b
    s t
    ;
    run;
     
     
    proc sql;
     
    create table tt as select a.var1, a.var2, (case when a.var1='a' and a.var2='b' then 10 end) as var3   from toto as a 
     
    ;
    quit;
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia....avance?uid=162

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    merci pour la réponse,
    mais par exemple si j'avais deux if comment je pourrais faire en sql.
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data toto;
    set toto;
    if var1 = "a" and var2 = "b" then var3 = 10;
    if var1 = "b" and var2 = "c" then var3 = 12;
    run;
    merci d'avance

  4. #4
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    comme ca tu peux faire autant de condition que tu souhaite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    proc sql;
     
    SELECT var1, var2, CASE when  var1='a' and var2='b' then 10
                          WHEN var1='c' and var2='d' THEN 12
                           END AS var3
    FROM  toto;
    quit;
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia....avance?uid=162

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    merci et j'ai une derniere question:
    si j'ai une étape data comme ca, comment je fais avec un proc SQL ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data toto;
    set toto;
    if var1 = "a" and var2 = "b" then var3 = 10;
    if var1 = "b" and var2 = "c" then var3 = 12;
    var3 = var4 + var5;
    var6 = var3;
    run;

  6. #6
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROC SQL;
     
    SELECT var1, var2, CASE when  var1='a' AND var2='b' then 10
                          WHEN var1='c' AND var2='d' THEN 12
                           END AS var3, ( var4 + var5) as var3 , var3 as var6
    FROM  toto;
    QUIT;

  7. #7
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Citation Envoyé par MEGAMIND2 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROC SQL;
     
    SELECT var1, var2, CASE when  var1='a' AND var2='b' then 10
                          WHEN var1='c' AND var2='d' THEN 12
                           END AS var3, ( var4 + var5) as var3 , var3 as var6
    FROM  toto;
    QUIT;
    Je crois que ce serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CALCULATED var3 as var6
    Mais dis-nous, Julbisounous, pourquoi ce besoin soudain de faire du SQL ?
    Bon courage.
    Olivier

  8. #8
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Citation Envoyé par olivier.decourt Voir le message
    Mais dis-nous, Julbisounous, pourquoi ce besoin soudain de faire du SQL ?
    Bonne question Olivier

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Bonne question,
    c'est surtout pour ma culture personnelle et pour une optimisation de mes traitements et de perdre aucun index...

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

Discussions similaires

  1. Traduction étape DATA en SQL
    Par miasseu dans le forum SAS Base
    Réponses: 4
    Dernier message: 20/02/2013, 12h06
  2. Fonction MAX dans une data ou proc SQL
    Par Ouvrier11023 dans le forum SAS Base
    Réponses: 2
    Dernier message: 11/06/2012, 10h10
  3. [DATA] Optimisation d'une jointure : performance DATA vs PROC SQL
    Par foxrol dans le forum SAS Base
    Réponses: 3
    Dernier message: 08/02/2012, 12h15
  4. Convertir un data merge en proc sql
    Par jgx342 dans le forum SAS Base
    Réponses: 2
    Dernier message: 22/02/2010, 10h07
  5. Comparaison DATA / PROC SQL
    Par fafabzh6 dans le forum SAS Base
    Réponses: 7
    Dernier message: 20/01/2009, 13h19

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