Hi SAS Experts,
I am tryng to join two tables based on cntry and num,
and if a.value(from test1) > b.value(from test2) then i want to bring the "prct" from
test2 table ;
data test1;
input cntry$ name$ value num;
datalines;
india abc 10 1
india ccf 11 2
us aba 22 3
china abca 20 4
;
run;
data test2;
input cntry$ value num prct;
datalines;
india 20 1 0.1
india 9 2 0.4
us 22 3 0.5
china 22 4 0.6
china 23 3 0.8
;
run;
Here is my code and I think this is not right. Please help
Proc sql;
create table sample as
select a.Cntry,a.name,a.num,a.value from
test1 as a
case (when a.Cntry=b.cntry and a.num=b.num
and a.Value > b.value then prct end) as percentile1
left join test2 as b on a.Cntry=b.Cntry;
quit;
Thanks & Regards,
Sanjay.
Yes, your putting select items in the join area. Thats not how it should work. Try (as I am guessing as you haven;t provided a required output):
proc sql;
create table SAMPLE as
select A.CNTRY,
A.NAME,
A.NUM,
A.VALUE,
case when A.VALUE > B.VALUE then PRCT else . end as PERCENTILE1
from TEST1 A
left join TEST2 B
on A.CNTRY=B.CNTRY
and A.NUM=B.NUM;
quit;
Yes, your putting select items in the join area. Thats not how it should work. Try (as I am guessing as you haven;t provided a required output):
proc sql;
create table SAMPLE as
select A.CNTRY,
A.NAME,
A.NUM,
A.VALUE,
case when A.VALUE > B.VALUE then PRCT else . end as PERCENTILE1
from TEST1 A
left join TEST2 B
on A.CNTRY=B.CNTRY
and A.NUM=B.NUM;
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.