Я хочу выбирать между 2 наборами данных в зависимости от конкретного условия. То, что я считал правильным, либо переходит в неправильное состояние, либо я зацикливаюсь. Я хочу сделать все это внутри макроса и выйти из цикла, когда условие истинно.
%MACRO M;
%DO %UNTIL (ICU_LAST=FALSE);
/* REMOVE ANY "LAST" RECORDS THAT ARE IN ICU AS THEY WILL NOT HAVE A LLOC ASSOCIATED WITH THEM */
DATA LAST_TEST1;
FALSE = 0;
TRUE = 1;
FORMAT SEEN 8.;
RETAIN SEEN;
RETAIN RECNO;
IF SEEN=. THEN SEEN = FALSE;
IF SEEN = FALSE THEN
DO;
SET TESTTABLE_ENUMERATE END = LAST;
SEEN = TRUE;
END;
ELSE
SET RM_LAST_ICU END = LAST;
IF LAST THEN
ENDRECNO = 'LAST';
RUN;
/* IF THE LAST RECORD FOR EACH ACCOUNT IS AN ICU UNIT THEN DELETE IT AS THERE WILL BE NO ORDER OR ADMIT DATES ASSOCIATED WITH IT */
DATA RM_LAST_ICU;
FORMAT ICU_LAST 8.;
IF ICU_LAST = . THEN ICU_LAST = FALSE;
SET LAST_TEST1;
IF LOCATIONNURSEUNITCODEDESC IN (&ICU_LIST.) AND ENDRECNO = 'LAST' THEN
DO;
DELETE;
ICU_LAST = TRUE;
END;
ELSE
ICU_LAST = FALSE;
RUN;
%END;
%MEND;
%M;