全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2191 5
2014-05-22
悬赏 100 个论坛币 未解决
proc sql;
  connect to oracle as conname  (&risk);  
  create table rank_1 as select * from connection to conname   
(
  (select seccode, sec_name, bizdate, nav, bizdate2, nav2, name, bench
  from zx_wind_rank_ind) a

  left join (select bench from zx_wind_bench) b
  
on a.seccode = b.seccode
where bizdate = 20140510 and name = '被动'
);
    disconnect from conname;
quit;

运行日志就显示SQL命令未正确结束,从select seccode开始。

附:zx_wind_rank_ind(第二张)和zx_wind_bench的表

新建位图图像.bmp

新建位图图像 (2).bmp
二维码

扫码加我 拉你入群

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

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

全部回复
2014-5-23 08:17:34
你先说你要做什么吧。这样很快就可以解决问题。
你有orangle或者toad吗?试着慢慢在里边写代码,也直观,进步会很快~~
二维码

扫码加我 拉你入群

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

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

2014-5-23 08:45:06
jeozu 发表于 2014-5-23 08:17
你先说你要做什么吧。这样很快就可以解决问题。
你有orangle或者toad吗?试着慢慢在里边写代码,也直观,进 ...
我给弄出来了,就是低级错误啊... 大神你回答下我这个问题吧,就是如何给一列数据排个序,然后再在这列旁边出个新列,把他们的名次体现出来。而且如果一行是空数据的话,排序时不要它。
二维码

扫码加我 拉你入群

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

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

2014-5-23 08:54:28
iittala 发表于 2014-5-23 08:45
我给弄出来了,就是低级错误啊... 大神你回答下我这个问题吧,就是如何给一列数据排个序,然后再在这列旁 ...
建议利用libname命令连接外部的数据库至SAS的逻辑库,如
libname HQ oracle user=test password=mytest path='orcl' schema=HQ;

然后就可以在SAS里像调用逻辑库里的数据表一样调用外部数据库的表了
然后用SAS的Sql步或其他过程步处理数据
这样的好处是你不用每次都去连外部的数据库
还有SAS代码和外部的数据库相独立,以后换成sql server也可以用

你的问题在SAS里就是把数据取来再proc rank一下,很方便
二维码

扫码加我 拉你入群

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

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

2014-5-23 09:18:40
playmore 发表于 2014-5-23 08:54
建议利用libname命令连接外部的数据库至SAS的逻辑库,如
libname HQ oracle user=test password=mytest  ...
作业时,数据量过大,entity一般都是定义好的,SAS主要是select, insert, delete作业。所以一般还是用pass-through的方法。同时,一般SAS部门没有create权限,libname用处不大。
同意第二个问题的正解。。
二维码

扫码加我 拉你入群

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

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

2014-5-23 09:23:37
iittala 发表于 2014-5-23 08:45
我给弄出来了,就是低级错误啊... 大神你回答下我这个问题吧,就是如何给一列数据排个序,然后再在这列旁 ...
如果是在Oracle中排序,使用rank函数。
select *, rank() over (partition by Seccode order by addr) from YourAddrTable.
在SAS中,使用proc rank.
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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