更新有人告诉我这是不可能使用数组的,因为它们的存储方式。这稍微改变了我的问题,但要点仍然相同。我怎样才能最有效地从给定的值向量(例如:日、周、月、年)生成我需要的表,而无需多次重复代码?有没有办法简单地将给定的日期值替换为INTX
循环?
好的,这是我关于这个主题的最后一个问题,我保证。经过一些好的建议,我正在使用该INTX
功能。但是,我只想遍历我选择的不同类别并创建表格。我试过这个,但没有用。
data;
array period [*] $ day week month year;
run;
%MACRO sqlloop;
proc sql;
%DO k = 1 %TO dim(&period); /* in case i decide to drop/add from array later */
%LET bucket = &period[&k];
CREATE TABLE output.t_&bucket AS (
SELECT INTX( "&bucket.", date_field, O, 'E') AS test FROM table);
%END
quit;
%MEND
%sqlloop
可悲的是,这不起作用,因为我以某种方式弄乱了数组引用。如果我能做到这一步,我的状态就会很好。