data a1;
set a0;
by zjzh;
retain pg_last;
indic=0;
if cjsl<0 and pg_last>0 then
indic=1;
if last.zjzh then pg_last=0;
else pg_last=pg;
if indic=1;
run;
proc sql;
create table a2 as
select rq, sum(pg) as Sum_pg,
sum(pl) as Sum_pl,
sum(rg) as Sum_rg,
sum(rl) as Sum_rl
from a1
group by rq
order by rq
;
drop table a1;
quit;作者: shiyiming 时间: 2009-9-21 12:32 标题: Re: 请教各位大大一个数据编程问题 谢谢你了,但是你这个程序最后输出结果是错误的啊作者: shiyiming 时间: 2009-9-21 12:44 标题: Re: 请教各位大大一个数据编程问题 如果是这样,你需要把你要的结果说得再清楚一点,或者做一个例子作者: shiyiming 时间: 2009-9-21 13:08 标题: Re: 请教各位大大一个数据编程问题 呵呵谢谢你。 应该分为以下这样的三步:
1.计算出每天每个帐户i的pg之和spg;
data a01;
set a0;
by zjzh rq;
retain cjsl_indic 0;
if first.zjzh or first.rq then cjsl_indic=0;
if cjsl<0 then cjsl_indic=1;
run;
proc sql;
create table a02 as
select
rq, zjzh,
sum(pg) as spg,
sum(pl) as spl,
sum(rg) as srg,
sum(rl) as srl,
sum(cjsl_indic) as scjsl
from a01
group by zjzh, rq
order by zjzh,rq
;
quit;
data a1;
set a02;
by zjzh;
retain pg_last;
indic=0;
if scjsl>0 and pg_last>0 then
indic=1;
if last.zjzh then pg_last=0;
else pg_last=spg;
if indic=1;
run;
proc sql;
create table a2 as
select rq, sum(spg) as Sum_pg,
sum(spl) as Sum_pl,
sum(srg) as Sum_rg,
sum(srl) as Sum_rl
from a1
group by rq
order by rq
;
drop table a1, a0, a01, a02;
quit;作者: shiyiming 时间: 2009-9-21 13:59 标题: Re: 请教各位大大一个数据编程问题 谢谢啦