Hello. I am new to SAS Enterprise Guide. I need help with error messages. I have added a PERS table for the date of birth and need to calculate the age.
The original code:
Original Code - Worked
proc sql;
create table case_pgm_ac as
select distinct
t1.case_name,
t1.id label="case_id" as case_id,
t1.serial_num_identif as caseno,
t2.id as pgm_id,
t2.pgm_code,
t3.stat_rsn_code,
t3.stat_code as pgm_stat,
t3.beg_date as pgm_beg_date,
t3.end_date as pgm_end_date,
t3.id as pgmdetlid
from CalSAWS.case as t1
left join CalSAWS.pgm as t2 on t1.id=t2.case_id
left join CalSAWS.pgm_detl t3 on t2.id=t3.pgm_id
where t1.serial_num_identif = '2221489'
and t1.county_code="33"
and t2.pgm_code in ('WT')
and t3.stat_code='AC'
and t3.beg_date <'01nov2020'd and t3.end_date >= '01oct2020'd
order by t1.id,t2.id,t3.beg_date desc,t3.end_date desc;
quit;
The Edit code to include Members from February 2024, and calculate their age. I added Table 6- DOB- Date of Birth and tried to calculate Age.
Edited Code DOB - Errors
proc sql;
create table case_pgm_pers_detl_ac as
select distinct
t1.case_name,
t1.id label="case_id" as case_id,
t1.serial_num_identif,
t2.id as pgmid,
t2.pgm_code,
t3.id as pgmdetlid,
t3.stat_rsn_code,
t3.stat_code as pgm_stat,
t3.beg_date as pgm_beg_date,
t3.end_date as pgm_end_date,
t4.id as pgmpersid,
t5.id as pers_detl_id,
t5.stat_code as pers_stat,
t5.role_code,
t5.beg_date as pers_beg_date,
t5.end_date as pers_end_date,
t6.id as pers,
t6.dob as dateofbirth,
datepart(t6.dob) as dateofbirth format=date9.,
from CalSAWS.case as t1
left join CalSAWS.pgm t2 on t1.id=t2.case_id
left join CalSAWS.pgm_detl t3 on t2.id=t3.pgm_id
left join CalSAWS.pgm_pers t4 on t2.id=t4.pgm_id
left join CalSAWS.pgm_pers_detl t5 on t4.id=t5.pgm_pers_id
left join CalSAWS.pers t6 on t4.id=t5.pgm_pers_id
where t1.serial_num_identif
and t2.pgm_code='FS'
and t3.stat_code='AC'
and t5.stat_code='AC'
and t5.role_code='ME'
and t3.beg_date <'01apr2024'd and t3.end_date >= '01mar2024'd
and t5.beg_date<'01apr2024'd and t5.end_date>='01mar2024'd
and pgm_detl.end_date >= pgm_pers_detl.beg_date
and pgm_detl.beg_date <= pgm_pers_detl.end_date
and int((today()-Birth_Date)/365.25) as Age;
quit;
Tables Used
Tables
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.