包含许多 proc sql 语句的 SAS 循环

SAS loop containing many proc sql statements

我在 SAS EG 工作,有一个程序可以从多个数据库中提取数据,进行一些分析,并输出包含一些新数据的摘要 table。我现在被告知我需要这样做几十次,并且非常努力地在 SAS 中使用内部 proc SQL 语句进行循环。

让我再次尝试更详细地总结一下。

当前代码:

获取员工人数、车队、职位并输出一份摘要 table 与他们类别中的其他人相比他们当月所做的各种事情(主要使用 proc SQL)。

我需要做的:

给定另一个 table,其中包含许多相同变量(员工编号、车队、职位)的列表,我需要为这些独特的员工信息中的每一个生成相同的摘要信息。

非常感谢任何帮助!对 SAS 还是很陌生(不像 SQL 那么多)所以描述性越强越好。

通常在 SAS 中,您会定义一个宏,以便能够使用不同的变量(或需要更改的代码的任何其他部分)重新运行多步过程。无论您要生成的代码是否包含 PROC SQL 步或 DATA 步或任何其他过程,都是如此。

替换代码中因引用宏变量而异的部分。使用这些宏变量作为参数将代码包装在宏定义中。然后为每组参数值调用宏。

例如,如果您只想输入一个变量名,您的宏定义可能如下所示:

%macro mymacro(var);
   ... use &VAR. in your analysis code to replace the hard coded variable name ...
%mend ;

然后可以多次调用

%mymacro(var1);
%mymacro(var2);