【发布时间】:2019-04-05 03:06:53
【问题描述】:
我正在尝试运行宏,但我不确定它是否会解决,因为我有一段时间没有连接到我的数据库。我想知道宏是否编写正确,并在每次通过代码时解析状态(即重复执行并为每个状态创建一个表)。
我想知道的第二件事是我是否可以通过 from 语句运行宏。例如,让 entpr 成为我从中提取的数据库。以下是否正确解决:
proc sql;
select * from entpr.&state.; /*Do I need the . after &state?*/
我的其余代码:
libname mdt "........."
%let state = ny il ar ak mi;
proc sql;
create table mdt.&state._members
as select
corp_ent_cd
,mkt_sgmt_admnstn_cd
,fincl_arngmt_cd
,aca_ind
,prod_type
,cvyr
,cvmo
,sum(1) as mbr_cnt
from mbrship1_&state.
group by 1,2,3,4,5,6,7;
quit;
【问题讨论】:
-
一般我们不建议在 SAS 中拆分数据集。通常的原因是拆分以进行最终导出,但即使使用单个数据集也更容易。为什么你认为你需要拆分它?如果您搜索拆分为子集,您会发现很多示例说明如何执行此操作,以及我的建议,最佳做法是不要执行此操作。
-
我需要拆分数据集的原因是因为每个数据集都是从不同的表中提取的。