Я пытаюсь определить глобальную переменную «текущий год», которую я могу использовать для индексации разных таблиц в моей базе данных.Например, у меня есть следующие таблицы:
tb_2016
tb_2017
tb_2018
Все с идентичной схемой.Для каждого года я хочу иметь возможность динамически ссылаться на предыдущие годы без жесткого кодирования.
Поэтому я пытаюсь сделать следующее:
data _null_;
v_curr_year = PUT(TODAY(), YEAR4.);
v_last_year = v_curr_year - 1;
PUT v_curr_year;
PUT v_last_year;
run;
, который печатает 2018 и 2017 год, как и ожидалось.Однако, когда я пытаюсь это сделать:
PROC SQL;
SELECT * FROM schema.tb_&v_curr_year.;
QUIT;
Я получаю
ERROR 22-322: Syntax error, expecting one of the following: ...
ERROR 200-322: The symbol is not recognized and will be ignored.
Как я могу определить эту переменную v_curr_year
, чтобы я мог динамически ссылаться на такие годы?
Мои попытки использования %LET v_last_year=YEAR(INTNX("year", sysdate, -1))
не увенчались успехом ...