全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
12694 3
2011-06-30
我使用了如下的left join 程序:proc sql;
create table a.all as
select distinct a.*,b.*,c.*
from a.allbs as a,
     a.allis as b
left join a.allcf as c
on a.Stkcd=b.Stkcd;
quit;

运行时出错,日志显示:
ERROR: 列 Stkcd 的相关引用不包含在子查询内。

但是我allis,allbs,allcf内都有stkcd这个变量啊,为什么会说stkcd不包含在子查询内呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2011-7-1 07:12:41
是不是想要left join两次? (以下代码未经测试)
proc sql;
    create table a.all as
     select distinct a.*,b.*,c.*
     from (a.allbs as a
                   left join
           a.allis as b
            on a.stkcd=b.stkcd) as c
                   left join
               a.allcf as d
               on c.stkcd=d.stkcd;
quit;
二维码

扫码加我 拉你入群

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

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

2011-7-1 08:32:57
你是b和c在join,所以on的条件应该是b和c的
二维码

扫码加我 拉你入群

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

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

2014-6-18 10:35:16
估计你这个问题早已经解决了,不错还是想说说,你这code错得。。。。

proc sql;
create table a.all as               
select distinct a.*,b.*,c.*
from a.allbs as a
left join a.allis as b
on  a.Stkcd=b.Stkcd
left join a.allcf as c
on a.Stkcd=c.Stkcd;
quit;

为了不那么confusing,library的名字最好就不要用a啦。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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