Hi SAS Forum,
Could you please help me to find out the reason for the error messege (highlighted in red below) when I have called the macro?
%macro newname (MTH_YR=, ym=) ;
proc sql;
create table out.cccc_&mth_yr._v2 as
select min(a.var1 ) as var1 ,
min(a.custno ) as cif ,
min(b.cif ) as cif ,
min(b.yearmonth) as yearmonth
from out.cccc_&mth_yr._v1 a,
extra.age_profile b
where a.custno= b.cif
and b.yearmonth = 201104
group by b.cif
;
quit;
%mend newname;
/*macro call*/
%newname(MTH_YR=Apr11, ym=201104) ;
ERROR: Expression using equals (=) has components that are of different data types.
Thanks
Mirisage
hi
Since you have not provided the data sets' strucure..
please check the line......
where a.custno=b.cif
i guess ...these are different data types !!
Regards
ALLU
HI.
I believe your problem may be here:
where a.custno= b.cif
and b.yearmonth = 201104
I think you should replace it with: (Please note the quotations around the 2011104)
where a.custno= b.cif
and b.yearmonth = "201104"
Let me know.
Good luck!
Anca.
PS: Also, in your macro, shouldn't your line ...
where a.custno= b.cif
and b.yearmonth = 201104
actually read:
where a.custno= b.cif
and b.yearmonth = "&ym."
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.