2016-10-03 2 views
0

Я создал таблицу из библиотеки под названием «common», используя таблицу proc sql, созданную с crdate, по убыванию сейчас Мне нужно написать макрос, чтобы выбрать верхний, который является последний набор данных, который создается в этой библиотекеКак извлечь последний набор данных в конкретной библиотеке с помощью макроса

ответ

1

Предполагая, что ваша библиотека содержит наборы данных SAS (.sas7bdat), следующее создаст макрокоманду latest_dataset с именем последнего набора данных в библиотеке COMMON без использования фактического макрос:

proc sql noprint; 
select memname into: latest_dataset 
    from dictionary.tables 
    where libname='COMMON' 
    having crdate=max(crdate); 
%put &=latest_dataset; 
+0

Что это будет, если два или более набора данных привязаны в последнее время? – user667489

+0

Он выберет один. Он также будет выбирать один, если информация о crdate недоступна (например, если библиотека указывает на базу данных). Я бы не рекомендовал этот подход для выбора конкретного набора данных, похоже, что процесс необходимо перепроектировать (так что выбранный набор данных может быть выбран в явном виде). –

Смежные вопросы