这里的新SAS用户:我有一个由PROC SQL语句创建的数据集(表):
proc sql;
create table work.dm_1 as
select distinct a.subject, c.dsyn as DSYN_DS_1, d.dsyn as DSYN_DS_2
from s_raw.dm_1 a
left join work.edt_eg b
on a.subject=b.subjid
left join s_raw.ds_1 c
on a.subject=c.subject
left join s_raw.ds_2 d
on a.subject=d.subject
where c.DSYN='NO' and d.DSYN='NO';
quit;
使用这个表(work.dm_1)的结果,我想修改另一个(现有的)表(work.dm_1)。Edt_ecg,从上一个过程中创建)从上面的过程SQL中的表中选择匹配的记录(使用dm_1中的subject和edt_eg中的subject),并更新表work.edt_ecg。我尝试了以下操作:
proc sql;
update table work.edt_eg as
select *
from work.edt_eg where subjid in (select distinct subject from work.dm_1);
quit;
但这对我不起作用!欢迎大家有什么想法
您应该创建一个包含所需数据子集的新表或视图
create view work.edt_eg_wanted as
select *
from work.edt_eg
where subjid in (select distinct subject from work.dm_1);
或从现有表
中删除所有不需要的(1)delete *
from work.edt_eg
where subjid not in (select distinct subject from work.dm_1);
(由于您没有提供示例数据,因此未对此代码进行测试)
(1) SAS用"观察"这个词来表示表中的行。这是因为SAS最初是由统计学家编写的