楼主: iittala
4232 16

[急+500论坛币] 请详细解释下列SAS语句的作用 [推广有奖]

11
iittala 发表于 2014-5-14 17:43:38
jeozu 发表于 2014-5-14 17:12
关于R000002的第二部分代码好像有错误。有两个code好像写错了。
是的,有的code可能是错的,但是语法应该都是对的。

12
iittala 发表于 2014-5-14 17:45:29
jeozu 发表于 2014-5-14 13:38
一句一句解释人都会疯掉~~~
请问大神r1=0.8*r中那个r是什么?我用数据库中的close_price/close_price2-1得不出r1的值啊...

13
iittala 发表于 2014-5-14 17:46:56
zhangwenteng 发表于 2014-5-14 10:41
这个就是一个简单的数据操作和数据转换,太简单了,实在写不下去了。。。谁给你接着写吧。
请问大神r1=0.8*r中那个r是什么?我用数据库中的close_price/close_price2-1得不出r1的值啊...

14
jeozu 发表于 2014-5-14 17:58:19
iittala 发表于 2014-5-14 17:46
请问大神r1=0.8*r中那个r是什么?我用数据库中的close_price/close_price2-1得不出r1的值啊...
数据库中的 r 不是close_price的增长率,而是表zx_wind_bench中seccode=00053的bench相对于基期的增长率。

15
iittala 发表于 2014-5-14 23:57:23
jeozu 发表于 2014-5-14 17:58
数据库中的 r 不是close_price的增长率,而是表zx_wind_bench中seccode=00053的bench相对于基期的增长率。 ...
知道了,多谢!那你能大概介绍一下这个程序的目的吗?

16
jeozu 发表于 2014-5-15 00:43:25
iittala 发表于 2014-5-14 23:57
知道了,多谢!那你能大概介绍一下这个程序的目的吗?
我已经在code中注释了呀~~~按照ETL程序,包括entity definition和mapping.
你先看看,有问题我们在讨论??

17
iittala 发表于 2014-5-19 09:07:55
zhangwenteng 发表于 2014-5-14 10:41
这个就是一个简单的数据操作和数据转换,太简单了,实在写不下去了。。。谁给你接着写吧。
多谢!我现在已经熟练很多,已将你的回答设为最佳答案!应该还有500个论坛币给你吧。

最后还有个问题啊,你看下面这段,是算一天的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 = 20140312  ) 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 = 20140312
     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;
run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 19:00