SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 664|回复: 3
打印 上一主题 下一主题

sql查询结果如何作为变量存储在数据集中?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-4-28 17:43:32 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-4-28 19:50:06 | 只看该作者

Re: sql查询结果如何作为变量存储在数据集中?

这样:
select sum(z&i) as sum&i into :sum&i from work.lag;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-4-28 21:42:19 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-4-30 12:02:38 | 只看该作者

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]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 14:07 , Processed in 0.138824 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表