sas排序执行错误

时间:2017-06-29 18:18:33

标签: loops sorting macros sas

我正在使用宏来浏览大约13,000个版本ID的列表。每次传递代码都会通过一个宏,使用PROC SQL将三个表连接在一起。注意:我也在使用压缩功能。  第一个表将在大约1分钟内运行(返回2,561行),第二个表占用20分钟到两个小时,具体取决于该版本的付款数量(返回大约118,000行),第三个表大约需要1分钟返回(600行)。运行第二个表所花费的时间有点令人担忧,但我的主要问题是在循环中我在大约2次传递后遇到排序执行错误。 我已经查明这可能是由于内存,但我的同事能够以5000的增量运行相同的宏,没有任何问题。 非常感谢任何帮助

%MACRO LOOPVERNOS(); 


%GLOBAL VERSIONID MAX_VERSIONID STARTNO FINISHNO INCR VERSION_NOS;


%GETMAXVERSIONID


%PUT MAX_VERSIONID = &MAX_VERSIONID;


%LET INCR = 500;


%DO VERSIONID = 1 %TO &MAX_VERSIONID %BY &INCR;


%PUT VERSIONID = &VERSIONID;


%LET STARTNO = &VERSIONID;


%LET FINISHNO = %EVAL(&STARTNO + &INCR);


%PUT STARTNO IS &STARTNO, FINISHNO IS &FINISHNO;


%GETVERNOS(STARTNO = &STARTNO,FINISHNO = &FINISHNO)


%PUT GOT VERSION NUMBERS;


%SQL


%PUT QUERIED PAYMENTS TABLE FOR CLAIMIDS &STARTNO-%EVAL(&FINISHNO - 1);


%PUT PASS COMPLETED;
%END;

%MEND LOOPVERNOS;


%LOOPVERNOS

0 个答案:

没有答案