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."
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.