如何创建自定义sas数据集

时间:2017-11-07 06:49:50

标签: sql sas sas-macro

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_;没有工作

1 个答案:

答案 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;

如果需要其他任何内容,请告诉我。