【发布时间】:2021-11-21 08:21:25
【问题描述】:
我正在尝试创建一个循环来对一组表执行相同的查询,从 2008 年到 2020 年,每年有一个表:
%macro sqlloop(start,end);
%DO year=&start. %TO &end.;
PROC SQL;
CREATE TABLE WORK.RESULT_&year
SELECT DISTINC ID
FROM YEAR_&year.
QUIT;
%END;
%mend;
%sqlloop(start=8, end=20)
问题是我需要 2008 和 2009 表的前导零,因为它们的名称是:YEAR_08、YEAR_09、YEAR_10...
【问题讨论】:
-
为什么不直接使用 2008 到 2020 年呢?不仅可以消除前导零的需要,还可以消除由于在年份值中不包括世纪而导致的歧义。
-
我没有选择表的命名方式。
标签: loops sas sas-macro proc-sql