Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/11/2012, 20h34   #1
avyperez
Invité de passage
 
Homme
Inscription : novembre 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2012
Messages : 10
Points : 2
Points : 2
Par défaut Macro SAS cherche erreur

Bonsoir Cher internautes ,

j'ai créer une macro toute simple mais je n'arrive pas a obtenir ce que je recherche!
Si l'un de vous pourriez me corriger , ce serait fort sympatique

Voici la macro :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%macro ensmag ( mag, volumes) ;
DATA malib.irism ;
SET malib.iris ;
txpenetration = clients / menages ;
IF txpenetration<0 then txpenetration=0 ;
WHERE &mag ;
run;
proc sort DATA = malib.iris2 ;
BY descending txpenetration;
run;
DATA malib.irism;
SET malib.irism ;
retain cumul 0;
cumul= cumul + menages;
run;
DATA malib.irism;
SET malib.irism ;
WHERE cumul <= &volumes ;
run;
%mend  ;
 
%ensmag ( mag="B" , volumes=36420) ;
la variable volume est bien appliquée mais pas celle de mag .

Il ne se preoccupe pas de selectionner Mag avec la modalité B.

Merci par avance
avyperez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 10h07   #2
Géraldine_Cade_SAS
Membre éprouvé
 
Femme Géraldine CADE DESCHAMPS
SAS FRANCE - Support Clients France et Europe
Inscription : février 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Femme Géraldine CADE DESCHAMPS
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 : 176
Points : 476
Points : 476
Bonjour,

Je pense que vous avez confondu :
- le paramètre de la macro
%ensmag ( mag="B" , volumes=36420) ;

- et la requête
WHERE &mag ;

%ensmag ( mag="B" [...] indique que vous créez une macro-variable locale MAG dont la valeur est "B".

WHERE &mag ; est traduit par
WHERE "B" ;
j'imagine que vous voulez plutôt
where mag="B" ;


Je dirais donc qu'il faut revoir la manière de coder le where pour qu'on est bien une condition testée, comme dans cet exemple :
Code :
1
2
3
4
5
6
7
%macro m (n=);
DATA _null_ ;
  SET sashelp.class ;
  WHERE name="&n" ;
run ;
%mend ;
%m (n=Alice) ;
Cordialement,
Géraldine Cade-Deschamps
Support Clients SAS
Géraldine_Cade_SAS est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h33.


 
 
 
 
Partenaires

Hébergement Web