I have the following:
%macro byfyear;
proc sql noprint;
select distinct fy
into :ifyear1 - :ifyear99
from IBS.OVR;
%let fyearcnt = &sqlobs;
quit;
%do i = 1 %to &fyearcnt;
%if &&ifyear&i = 2017 %then %do;
data EGTASK.OVRFY&&ifyear&i(where=(fy=&&ifyear&i));
set IBS.OVR;
run;
%end;
%else %do;
data EGTASK.OVRFY&&ifyear&i(where=(fy=&&ifyear&i));
set IBS.OVR;
run;
%end;
%end;
%mend byfyear;
%byfyear
It works fine. So if the year is 2017 the dataset name will be OVRFY2017. What I would like at
%if &&ifyear&i = 2017 %then %do
is to change it so the dataset name appends an A to the file name, so it would be OVRFY2017A. This means I need to add the A to the command:
data EGTASK.OVRFY&&ifyear&i(where=(fy=&&ifyear&i));
specifically the part: EGTASK.OVRFY&&ifyear&i
How can I do this? I have tried EGTASK.OVRFY&&ifyear&iA and EGTASK.OVRFY&&ifyear&i.A
Thanks
-Bill
I have tried EGTASK.OVRFY&&ifyear&iA and EGTASK.OVRFY&&ifyear&i.A
You need two dots before the A, because your macro variable begins with two ampersands
EGTASK.OVRFY&&ifyear&i..A
I have tried EGTASK.OVRFY&&ifyear&iA and EGTASK.OVRFY&&ifyear&i.A
You need two dots before the A, because your macro variable begins with two ampersands
EGTASK.OVRFY&&ifyear&i..A
thanks!
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.