proc sql;
CREATE TABLE alert_p3 AS
SELECT
a.medicaid_num,
b.PCP_PROVIDER_ID_2001_3 AS pcp_provider_id,
c.provider_name_2003 AS managed_care_plan_name,
datepart(b.DATE_BEGIN_PCP_3331_1) AS Date_Begin_PCP format = mmddyy10.,
datepart(b.DATE_END_PCP_3331_2) AS Date_End_PCP format = mmddyy10.
FROM
high.c_age_medicare a
INNER JOIN
DM_med.omh_recip_prepaid_cap_date b ON
/* medicaid.omh_recip_prepaid_cap_date b */
a.medicaid_num = b.recipient_id_1010
INNER JOIN
DM_med.DIM_MCAID_PROV_CURRENT c ON
/* medicaid.provider_current c */
b.PCP_PROVIDER_ID_2001_3 = c.provider_id_2001
WHERE
Pcp_Capitation_Code_3330 <> '0' AND
DATE_BEGIN_PCP_3331_1 < &enddt. AND
DATE_END_PCP_3331_2 >= &enddt.
ORDER BY
medicaid_num,
DATE_BEGIN_PCP_3331_1,
DATE_END_PCP_3331_2;
quit;
* Take the most recent pcp dates;
data alert_plan_eligib_p3;
set alert_p3;
by Medicaid_num date_end_pcp;
if last.medicaid_num=1;
run;
ERROR: BY variables are not properly sorted on data set
WORK.ALERT_P3.



雷达卡




谢谢你的帮忙!我也觉得结果应该不会有变化。 这一段程序是以前的人留下的,所以我比较倾向于保持它原来的样子,以免报告出现问题。不过这个月跑,这边就出错了,我就像你说的,去掉order by中间的变量, 然后继续跑接下来的程序。 可是,后来出来的结果比上个月多出1/8的数据,可能是因为中途我SAS没反应造成,也可能是因为当天server有问题,反正我觉得结果不可能多出那么多。后来没时间了,就只好跟老板说星期一再试一次…唉……
京公网安备 11010802022788号







