SAS中文论坛

标题: sql查询结果如何作为变量存储在数据集中? [打印本页]

作者: shiyiming    时间: 2009-4-28 17:43
标题: sql查询结果如何作为变量存储在数据集中?
我用循环查询了work.lag数据集中z1,z2,...z10,共十个变量,并分别求和作为sum1,sum2,...sum10;
但是不知道如何存储这10个求和结果,即把它们放到一个数据集中。多谢高手指点!
%macro cov;

proc sql;
%do i=0 %to 10;
select sum(z&i) as sum&i from work.lag;
%end;
quit;

%mend;
%cov;
作者: shiyiming    时间: 2009-4-28 19:50
标题: Re: sql查询结果如何作为变量存储在数据集中?
这样:
select sum(z&i) as sum&i into :sum&i from work.lag;
作者: shiyiming    时间: 2009-4-28 21:42
标题: Re: sql查询结果如何作为变量存储在数据集中?
data tblNew;
set lag end = last;
retain sum1-sum10 0;
array z{*} z1-z10;
array sumAry{*} sum1-sum10;
do i=1 to 10;
    sumAry{i} = sum(sumAry{i},z{i});
end;
if last then output;
keep sum1-sum10;
run;
作者: shiyiming    时间: 2009-4-30 12:02
标题: Re: sql查询结果如何作为变量存储在数据集中?
仔细看看proc sql的reference..
[code:355mao3g]proc sql ;
%do i=0 %to 10;
insert into yourdata  
select sum(z&i) as sum&i from work.lag;
%end;
;
quit;
[/code:355mao3g]




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2