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

Macro Discussion :

Proc surveyselect : export table contenant des totaux


Sujet :

Macro

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 18
    Points
    18
    Par défaut Proc surveyselect : export table contenant des totaux
    Bonjour,

    Je sol.licite votre aide svp...je voudrais exporter des tables sas contenant des totaux estimés par la procédure proc surveyselect et ce en fonction de plusieurs variables. Donc, j'ai essayé de créer une macro qui ferait ce travail mais elle ne marche pas...et la log ne m'aide pas à retrouver les erreurs.
    Voici mon code:

    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
     
    %let var1 = pob_id;
    %let var2 = nom_id_sexe;
     
     
    %macro test(library=epf, table=llar);
     
    %do i=1 %to i=2 
     
    data test;
    set &library..&table;
    proc surveyfreq data=&library..&table;
    tables var&i;
    weight W_mem;
    ods output Statistics = estimation;
    run;
    %end;
     
    %mend test;
    Si quelqu'un peut m'aider à y voir plus clair.

    Merci d'avance,
    alea

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Déjà il faut un point-virgule à la fin de %do i=1 %TO i=2

    ensuite pourquoi créés tu une table test puisque tu utilises &library..&TABLE dans la proc ?

  3. #3
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Merci pour tes corrections Datametric.

    Mais la macro ne s'execute toujours pas!

    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
     
    %let var1 = pob_id;
    %let var2 = nom_id_sexe;
    %macro test(library=epf, table=llar);
     
     
    %do i=1 %to i=2;
     
    proc surveyfreq data=&library..&table;
    tables var&i;
    weight W_mem;
    ods output Statistics = estimation;
    run;
    %end;
     
    %mend test;
     
    %test;
    Une idée?

    Merci d'avance

  4. #4
    Membre éclairé

    Femme Profil pro
    SAS FRANCE - Support Clients France et Europe
    Inscrit en
    Février 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : SAS FRANCE - Support Clients France et Europe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 289
    Points : 886
    Points
    886
    Par défaut
    Bonjour,

    1. la syntaxe du %do n'est pas bonne. Après le %TO on met juste le nombre désiré.
    2. pour référencer une macro variable comme vous le fait il faut utiliser &&.

    Le code corrigé :

    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
    %let var1 = pob_id;
    %let var2 = nom_id_sexe;
     
    %macro test (library=sashelp, TABLE=class);
     
    %do i=1 %TO 2 ;
     
    	DATA test;
    	SET &library..&TABLE;
    	run ;
     
    	proc surveyfreq DATA=&library..&TABLE;
    	TABLES &&var&i;
    	weight W_mem;
    	ods output Statistics = estimation;
    	run;
    %end;
     
    %mend test;
     
    %test ;
    AInsi le code s'exécute.

    Cordialement,
    Géraldine Cade-Deschamps
    Support Clients SAS

  5. #5
    Membre actif Avatar de tdiallo
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 118
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    essaye avec ce code

    dans l'appel à ta table tu avais oublié le point et le && pour l'appel à tes variables.
    l'indice de parcours aussi : %do i=1 to 2 ;
    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
     
    %let var1 = pob_id;
    %let var2 = nom_id_sexe;
    %macro test(library, TABLE);
     
     
    %do i=1 %TO 2;
     
    proc surveyfreq DATA=&library..&TABLE.;
    TABLES &&var&i.;
    weight W_mem;
    ods output Statistics = estimation;
    run;
    %end;
     
    %mend test;
     
    %test(epf,llar);
    Bon courage !!!!

  6. #6
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup de votre aide !!

    Bonne semaine à vous,

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

Discussions similaires

  1. Export Jobs contenant des sous-jobs
    Par NTeeN dans le forum Installation, migration et administration
    Réponses: 13
    Dernier message: 12/10/2009, 17h00
  2. delete dans une table contenant des primary key
    Par bracket dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/11/2008, 17h41
  3. Réponses: 14
    Dernier message: 23/07/2007, 17h29
  4. SQL : union de 2 tables contenant des champs OLE ?
    Par kikidrome dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 01/12/2006, 20h37
  5. Réponses: 2
    Dernier message: 07/11/2005, 18h54

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