早教吧 育儿知识 作业答案 考试题库 百科 知识分享

SAS错误:用等于(=)的表达式具有不同数据类型的组件.procsql;createtableresdat.finalasselect*fromresdat.or,resdat.awhereor.stkcd=a.stkcd&or.year=a.year&or.name=a.name;ERROR:用等于(=)的表达式具有不同

题目详情
SAS错误:用 等于 (=) 的表达式具有不同数据类型的组件.
proc sql;
create table resdat.final as select * from resdat.or, resdat.a
where or.stkcd=a.stkcd & or.year=a.year& or.name=a.name;
ERROR: 用 等于 (=) 的表达式具有不同数据类型的组件.
意思很简单,就是将or和a两个表格根据stkcd,year和name三个条件相等进行合并.要是我写的不对,正确的应该怎么写呢?
▼优质解答
答案和解析
我不大清楚你的error message 你可以试试下面这个程序:
proc sql;
create table resdat.final as
select x.* ,y.*
from resdat.or x
left join
resdat.a y
on (x.stkcd=y.stkcd and x.year=y.year and x.name=y.name);
quit;
上面的程序中 用 x 代表resdat.or,y 代表 resdat.a.
我用了 left join为例,根据你的需要可以用right join,inner join,full join.网上可以搜到对应的含义.
Does it work?