Calculated references work in the PROC SQL WHERE clause as below.
proc sql noprint;
create table task as
select
name,
sex,
age,
age*10 as myVar
from
sashelp.class
where
calculated myVar ge 150;
quit;
I wonder why it does not work in an ON clause?
data romans;
length roman $ 4;
age='11';roman='XI';output;
age='12';roman='XII';output;
age='13';roman='XIII';output;
age='14';roman='XIV';output;
age='15';roman='XV';output;
age='16';roman='XVI';output;
run;
proc sql noprint;
create table task as
select
a.name,
a.sex,
a.age,
strip(put(a.age,8.)) as myVar,
b.roman
from
sashelp.class a
inner join romans b
on calculated myVar=b.age;
quit;
You are basically selecting columns from a table or from a combined/joined tables and not the other way round
So note the correction as follows
proc sql noprint;
create table task as
select
a.name,
a.sex,
a.age,
strip(put(a.age,8.)) as myVar,
b.roman
from
sashelp.class a
inner join romans b
on put(a.age,8. -l)=b.age;
quit;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.