Как создать собственный набор данных sas

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 выдает синтаксическую ошибку, что-то отсутствует.

data Work.Temp = &SAGIA._ALL_; не работал

data Work.Temp = &SAGIA _null_; не работал

1 ответ

Решение

Почему бы вам не создать таблицу напрямую, а не создать макрос и сохранить его в наборе данных?

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;

Дайте мне знать, если что-нибудь еще потребовалось.

Другие вопросы по тегам