proc sql;
select *
INTO: SAGIA
From Sasoprsk.Cust_field_value, Sasoprsk.Cust_obj_7
Where Cust_field_value.BUSINESS_OBJECT_RK eq Cust_obj_7.CUST_OBJ_7_ID;
run;
data Work.Temp = &SAGIA;
run;
我想创建一个自定义数据集,其中BUSINESS_OBJECT_RK列值等于CUST_OBJ_7_ID,但其中一个是字符串类型,另一个是数字类型。所以它不工作,然后我想在我选择的字段的工作库中创建一个数据集,因为我编写了上面的代码,但它没有工作。
proc print data=&SAGIA
工作正常,但数据语句给我一个语法错误,缺少某些东西。
data Work.Temp = &SAGIA._ALL_;
没有工作
data Work.Temp = &SAGIA _null_;
没有工作
答案 0 :(得分:0)
为什么不直接创建表而不是创建宏并将其存储到数据集中?
data abc;
input a $1. b;
cards;
1 20
2 30
3 40
;
run;
data pqr;
input p q;
cards;
1 1000
3 7000
;
run;
1)使用proc sql
proc sql;
create table sagia as
select *
From abc, pqr
Where input(abc.a,1.) eq pqr.p;
run;
2)使用合并
data abc;
set abc;
p = a*1; /* converts character column a into numeric column p */
/*or p=input(a,1.);*/
drop a;
run;
proc sort data=abc;
by p;
run;
proc sort data=pqr;
by p;
run;
data sagia;
merge abc(in=table1) pqr(in=table2);
by p;
if table1 and table2;
run;
如果需要其他任何内容,请告诉我。