NOTE: Remote submit to SERV commencing.
582 options mprint;
583
584 %macro crea_stringa();
585
586 proc sql;
587 select name into :my_name1 - :my_name__
588 from work.my_data;
589 quit;
590
591 %put My name 1 is: &my_name1.;
592 %put My name 2 is: &my_name2.;
593
594 proc sql;
595 select count(name) as NUMBER into :count from work.my_data;
596 quit;
597 %local j;
598
599 %do j=1 %to &count.;
600
601 if prog=&j.+1 then
602
603 %let name= cats(&my_name.,&j.);
604
605 %put My name is: &name.;
606
607 retain B_&name. D_&name. P_&name.;
608 B_&name. = lag(&name.);
609 D_&name. = dif(&name.);
610 P_&name.= D_&name./B_&name.;
611 format P_&name. percent.2;
612 if D_&name. = . then D_&name. = 0;
613 %end;
614 %mend;
615
616 %crea_stringa;
MLOGIC(CREA_STRINGA): Beginning execution.
MPRINT(CREA_STRINGA): proc sql;
MPRINT(CREA_STRINGA): select name into :my_name1 - :my_name__ from work.my_data;
WARNING: INTO Clause :my_name1 through :my_name__ does not specify a valid sequence of macro
variables.
MPRINT(CREA_STRINGA): quit;
NOTE: The PROCEDURE SQL printed page 27.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
MLOGIC(CREA_STRINGA): %PUT My name 1 is: &my_name1.
SYMBOLGEN: Macro variable MY_NAME1 resolves to RET_TOT
My name 1 is: RET_TOT
MLOGIC(CREA_STRINGA): %PUT My name 2 is: &my_name2.
SYMBOLGEN: Macro variable MY_NAME2 resolves to ESP_TOT
My name 2 is: ESP_TOT
MPRINT(CREA_STRINGA): proc sql;
MPRINT(CREA_STRINGA): select count(name) as NUMBER into :count from work.my_data;
MPRINT(CREA_STRINGA): quit;
NOTE: The PROCEDURE SQL printed page 28.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
MLOGIC(CREA_STRINGA): %LOCAL J
SYMBOLGEN: Macro variable COUNT resolves to 2
MLOGIC(CREA_STRINGA): %DO loop beginning; index variable J; start value is 1; stop value is 2; by
value is 1.
NOTE: Line generated by the invoked macro "CREA_STRINGA".
616 if prog=&j.+1 then
--
180
SYMBOLGEN: Macro variable J resolves to 1
MLOGIC(CREA_STRINGA): %LET (variable name is NAME)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable J resolves to 1
MLOGIC(CREA_STRINGA): %PUT My name is: &name.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
My name is: cats(&my_name.,1)
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): if prog=1+1 then retain B_cats(&my_name.,1) D_cats(&my_name.,1)
P_cats(&my_name.,1);
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
NOTE: Line generated by the macro variable "NAME".
616 B_cats(&my_name.,1)
------
180
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): B_cats(&my_name.,1) = lag(cats(&my_name.,1));
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
NOTE: Line generated by the macro variable "NAME".
616 D_cats(&my_name.,1)
------
180
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): D_cats(&my_name.,1) = dif(cats(&my_name.,1));
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
NOTE: Line generated by the macro variable "NAME".
616 P_cats(&my_name.,1)
------
180
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): P_cats(&my_name.,1)= D_cats(&my_name.,1)/B_cats(&my_name.,1);
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
NOTE: Line generated by the invoked macro "CREA_STRINGA".
616 retain B_&name. D_&name. P_&name.; B_&name. = lag(&name.); D_&name. = dif(&name.); P_&name.=
616! D_&name./B_&name.; format P_&name. percent.2; if D_&name. = . then D_&name. = 0;
------
180
ERROR 180-322: Statement is not valid or it is used out of proper order.
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): format P_cats(&my_name.,1) percent.2;
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
NOTE: Line generated by the invoked macro "CREA_STRINGA".
616 retain B_&name. D_&name. P_&name.; B_&name. = lag(&name.); D_&name. = dif(&name.); P_&name.=
616! D_&name./B_&name.; format P_&name. percent.2; if D_&name. = . then D_&name. = 0;
--
180
ERROR 180-322: Statement is not valid or it is used out of proper order.
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,1)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): if D_cats(&my_name.,1) = . then D_cats(&my_name.,1) = 0;
MLOGIC(CREA_STRINGA): %DO loop index variable J is now 2; loop will iterate again.
NOTE: Line generated by the invoked macro "CREA_STRINGA".
616 if prog=&j.+1 then
--
180
SYMBOLGEN: Macro variable J resolves to 2
MLOGIC(CREA_STRINGA): %LET (variable name is NAME)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable J resolves to 2
MLOGIC(CREA_STRINGA): %PUT My name is: &name.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
My name is: cats(&my_name.,2)
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): if prog=2+1 then retain B_cats(&my_name.,2) D_cats(&my_name.,2)
P_cats(&my_name.,2);
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
NOTE: Line generated by the macro variable "NAME".
616 B_cats(&my_name.,2)
------
180
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): B_cats(&my_name.,2) = lag(cats(&my_name.,2));
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
NOTE: Line generated by the macro variable "NAME".
616 D_cats(&my_name.,2)
------
180
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): D_cats(&my_name.,2) = dif(cats(&my_name.,2));
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
NOTE: Line generated by the macro variable "NAME".
616 P_cats(&my_name.,2)
------
180
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): P_cats(&my_name.,2)= D_cats(&my_name.,2)/B_cats(&my_name.,2);
ERROR 180-322: Statement is not valid or it is used out of proper order.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
NOTE: Line generated by the invoked macro "CREA_STRINGA".
616 retain B_&name. D_&name. P_&name.; B_&name. = lag(&name.); D_&name. = dif(&name.); P_&name.=
616! D_&name./B_&name.; format P_&name. percent.2; if D_&name. = . then D_&name. = 0;
------
180
ERROR 180-322: Statement is not valid or it is used out of proper order.
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): format P_cats(&my_name.,2) percent.2;
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
NOTE: Line generated by the invoked macro "CREA_STRINGA".
616 retain B_&name. D_&name. P_&name.; B_&name. = lag(&name.); D_&name. = dif(&name.); P_&name.=
616! D_&name./B_&name.; format P_&name. percent.2; if D_&name. = . then D_&name. = 0;
--
180
ERROR 180-322: Statement is not valid or it is used out of proper order.
WARNING: Apparent symbolic reference MY_NAME not resolved.
SYMBOLGEN: Macro variable NAME resolves to cats(&my_name.,2)
WARNING: Apparent symbolic reference MY_NAME not resolved.
MPRINT(CREA_STRINGA): if D_cats(&my_name.,2) = . then D_cats(&my_name.,2) = 0;
MLOGIC(CREA_STRINGA): %DO loop index variable J is now 3; loop will not iterate again.
MLOGIC(CREA_STRINGA): Ending execution.
NOTE: Remote submit to SERV complete.
Buongiorno,
ho creato la seguente macro ma non riesco a capire l'errore 🙄:
- trova le variabili nel DB "my_data" e poi esegue delle differenze e dei "lag" ma non risco a fargli prendere i nomi delle variabili :
my_data:
... View more