全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2698 4
2014-05-19
悬赏 100 个论坛币 已解决
下面这段,是算一天的变量r1和add_r的(就是%let date_str=的那一天)。我想算一个时间段内每天的r1和add_r,并把这两个数据统计在一张表上,请问该怎么做啊?另外日期不要周末的。

*%let date_str = '20140312';
proc sql;
  connect to oracle as conname  (&risk);  
  create table hthg as select * from connection to conname   
(
select bizdate,a.code,a.name,close_price,bizdate2,close_price2,close_price/close_price2-1 as r,
       to_date(bizdate,'yyyy-mm-dd')-to_date(bizdate2,'yyyy-mm-dd') as interval      from
(select bizdate,code,name,close_price
  from pf_all_quotation
where typecode = 'S'
   and code in
       ('s3756108','h11009')
   and bizdate = &date_str ) a
   
left join (   
select bizdate as bizdate2,code,name,close_price as close_price2
  from pf_all_quotation
where typecode = 'S'
   and code in   ('s3756108','h11009')
   and bizdate = 20140311  ) b  on a.code=b.code
);
  disconnect from conname;
quit;
%let a='R0000056';   
data hthg2;
set hthg;
if code='s3756108' then
  do;
  r1=0.5*r;
  p=&a;         
  end;
if code='h11009' then
  do;
  r1=0.5*r;
  p=&a;
  end;
run;
proc sql;
create table hthg3 as
( select sum(r1)as r,p,bizdate
  from hthg2
  where p=&a
  group by p,bizdate
  );
quit;


proc sql;
  connect to oracle as conname  (&risk);  
  create table jingzhi_hthg as select * from connection to conname   
(
     select c.*,b2,nav2,add2 from
   (select a.painnercode as p, panamecn, bizdate, nav, addupnav as add1
     from pd_real_pa_netval a
     left join pd_pa_definition b on a.painnercode = b.painnercode
    where bizdate = &date_str
     and a.painnercode ='R0000056' ) c
    left join     
       ( select painnercode as p,bizdate as b2, nav as nav2, addupnav as add2
     from  pd_real_pa_netval
     
    where bizdate = 20140311
     and painnercode ='R0000056' ) d  on c.p=d.p
);
  disconnect from conname;
quit;
data jingzhi_hthg;
set jingzhi_hthg;
add_r=(add1-add2)/nav2;      * 修正复权净值增长率;
drop b2 nav2 add2;
run;
data pf_all_bench17;      * 业绩基准表  03.11运作;
merge jingzhi_hthg  hthg3;
by p;

最佳答案

jeozu 查看完整内容

试一下这段代码, 全部都在Oracle中解决的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-19 09:11:59
iittala 发表于 2014-5-19 17:42
嗯,就要p, panamecn, bizdate, nav, add1, add_r, r这几项。你看我这代码是用来计算3月12号(date_str ...
试一下这段代码, 全部都在Oracle中解决的。
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-19 16:20:51
你现在的代码跟以前的那个SQL差距太大~~结果应该完全不一样~~你确定要这个??
最终表只需要code, name, bizdate,bizdate2, close_price, close_price2, r, addr, painnercode, panamecn, nav, nav2, add1, add2, add_r ????

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-19 17:42:27
jeozu 发表于 2014-5-19 16:20
你现在的代码跟以前的那个SQL差距太大~~结果应该完全不一样~~你确定要这个??
最终表只需要code, nam ...
嗯,就要p, panamecn, bizdate, nav, add1, add_r, r这几项。你看我这代码是用来计算3月12号(date_str)的数据的,是要和3月11号(bizdate)的数据相比的。我现在就想算date_str=20140313, bizdate=20140312然后date_str=20140314, bizdate=20140313这么以此类推下去,直到今天的。把每天的数据都列在一张表上,然后周末不要,就和下图一样。多谢大神回答!

image.jpeg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-19 20:24:48
iittala 发表于 2014-5-19 17:42
嗯,就要p, panamecn, bizdate, nav, add1, add_r, r这几项。你看我这代码是用来计算3月12号(date_str ...
那你的意思是做滚动增量??addr, r1都是跟上一个交易日环比的增长率?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群