首页 热点资讯 义务教育 高等教育 出国留学 考研考公

请帮忙解释一下以下SAS语句的意思

发布网友

我来回答

1个回答

热心网友

你代码搞得那么乱,当然看不懂了,真是的!

**********************************************************************************************************************

1 PROC SQL;

2 CONNECT TO  oracle AS conname;  
3 CEREAT TABLE temp AS SELECT * FROM CONNECTION TO conname  
4 (

5         SELECT

6         bizdate, a.code,a.name,close_price, bizdate2, close_price2,

7         close_price/close_price2-1  AS r,

8         to_date(bizdate,'yyyy-mm-dd')-to_date(bizdate2,'yyyy-mm-dd') AS interval      

9         FROM

          _________________________________________________________

10        ( SELECT bizdate, code,name,close_price

11          FROM pf_all_quotation

12          WHERE 

13          typecode = 'S'   AND code IN('81699', '00030', '39992', '81602', '00001', 'h1100',          

              'h1100','h1100', 'h1100','00093', 'h1100', 'h1100', '81602', '00090', '00090')   AND   

              bizdate = &date_str 

14         )  a

         

15  LEFT JOIN

16       (  
17        SELECT bizdate AS bizdate2,code,name,close_price AS close_price2

18        FROM pf_all_quotation

19        WHERE typecode = 'S' AND code IN('81699', '00030', '39992', '81602', '00001', 

20            'h1100', 'h1100', 'h1101', 'h1100','00093', 'h1100', 'h1100', '81602', '00090', '   

21                 00090')   

22        AND bizdate = 20121231 

23        )  b  

24  ON a.code=b.code

           ___________________________________________________

25 );

26 DISCONNECT FROM conname;
27 QUIT;

*******************************************************************************************************************

注释:这段代码的作用是利用SAS的“PROC SQL”从Oracle数据库中的数据集 “pf_all_quotation” 中抽取满足要求的数据项形成一个新的表“temp”,该过程中用到了两个临时表a和b,temp就是由a、b两个表通过“左连接” ( LEFT JOIN)生成的.这段代码的结构其实很简单,如果说看不懂,那估计就是你被10-14行的嵌套的SELECT语句给迷惑了吧,另外你的代码也太乱了,那能容易看懂?理解这段代码你要先回顾以下几个知识点。

第2行:SAS与Oracle要首先建立一个“连接”,这个“连接”的名字叫"conname"

第3行:表明通过conname来形成表temp

第7、8行:AS起重命名的作用,前者把除法运算的结果命为r,后者把日期相减的结果命为interval

第10-14行:表a是通过SELECT...FROM...语句形成的,b同理

第13行:WHERE后面的是条件*语句.IN表明code须是括号中的某一项.

第15行:左连接.解释起来很啰嗦,直接给你看个例子。


代码不是很难,就是需要点耐心。这下懂了吧?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com