Я пытаюсь создать макропеременную на основе значения, содержащегося во внешней таблице.В настоящее время я использую это:
PROC SQL NOPRINT;
SELECT compress("'" || put(MAX(CALL_DATE)+1 , DATE9.)|| "'")
into :start_date
FROM table.test
;
Это дает мне максимальную дату из моей таблицы как «10OCT2018». Проблема заключается в том, что при первоначальном запуске этой исходной таблицы не будет иметь максимальное значение, как это будетбыть пустым, поэтому он оценивается как '.'Я хотел бы сделать что-то вроде:
PROC SQL NOPRINT;
SELECT IF compress("'" || put(MAX(CALL_DATE)+1 , DATE9.)|| "'") ='.' THEN
'10OCT2018' ELSE compress("'" || put(MAX(CALL_DATE)+1 , DATE9.)|| "'") END
into :start_date
FROM table.test
;
Это позволит мне заполнить переменную, когда исходная таблица пуста, но затем использовать максимальную дату после ее обновления данными.