Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2007, 16h49   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2004
Messages : 33
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 33
Points : 13
Points : 13
Par défaut Utiliser les macro variables avec sql

Bonjour,
savez-vous s'il est possible d'utiliser des macro variables dans une requete SQL ?

ce que j'essaie de faire est de nommer certains champs avec la valeur d'une variable SAS comme dans l'exemple (forcément faux, mais juste pour montrer l'idée générale)

Code :
1
2
3
4
5
6
7
8
9
10
11
DATA _NULL_;
MaMacroVariable=year(DATE()); 
call symput('MaMacroVariable',MaMacroVariable);
run;
 
%put &MaMacroVariable;
 
proc sql;
SELECT sum(mesventes) AS &MaMacroVariable FROM mabase.ventes WHERE YEAR(dtjour) = YEAR(TODAY())
FROM  mabase.ventes;
quit;
Une idée ?
Euseibus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 21h47   #2
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
Bonjour,
As tu tout mis dans une macro :
%MACRO ..
%MEND
As tu testé?
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 11h00   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2004
Messages : 33
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 33
Points : 13
Points : 13
J'ai essayé mais ça ne marche pas :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
%MACRO app;
%PUT "2007";
%MEND app;

proc sql;
CREATE TABLE TMP_0 AS 
SELECT DISTINCT sum(ventes) AS %app FROM mabase.matable;
quit;


ERROR 22-322: Expecting a name.

ERROR 22-322: The option or parameter is not recognized and will be ignored.
Euseibus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 14h21   #4
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
Hello,
Si tu fais un truc du style
Code :
1
2
3
4
5
6
%MACRO test2(var);
proc sql ;
CREATE TABLE temp2 AS SELECT DISTINCT code AS &var FROM base;
run;
%MEND test;
%test2(aa);
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 15h46   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2004
Messages : 33
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 33
Points : 13
Points : 13
Par défaut [Résolu]

Merci !!!
C'est parfait !
Euseibus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 18h40   #6
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
De rien
a+
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h17.


 
 
 
 
Partenaires

Hébergement Web