Как создать собственный набор данных 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;
Дайте мне знать, если что-нибудь еще потребовалось.