Я должен запускать отчет каждое утро, но не могу, пока все таблицы, из которых я запрашиваю, не были обновлены за этот день.
Я хочу создать макрос, который не продолжает обработку sasпока все таблицы не обновятся.Существует одна таблица со всеми таблицами в SSDM и датой и временем их обновления.Для более простых целей я назову эту таблицу Info, а имена столбцов - tablename и dateupdated.Таблицы, которые я буду использовать, это table1, table2 и table3 из n таблиц.
%macro Updated;
proc sql;
create table Data_ready as
select
tablename,
dateupdated,
case when dateupdated=today() then 'Ready'
else 'Not Ready'
end as 'Status'
from Info
where tablename in (table1, table2, ..., tablen)
quit;
%if count(Data_ready.Status = 'Ready') ne count(Data_ready.tablename) %then %do;
proc sql;
drop table work.Data_ready
;quit;
sleep(60*30,1);
%end;
%else %do;
proc print data=Data_ready;
run;
%end
%mend;
*here I will have the rest of the code to produce the report knowing that the information is up to date
Есть ли способ сделать это с помощью do while или do before?Я пытался выяснить, какой-то макрос, но я сталкиваюсь с некоторыми проблемами, чтобы убедиться, что все таблицы обновляются, прежде чем идти вперед.Заранее спасибо.