New SAS здесь: У меня есть набор данных (таблица), созданная с помощью PROC SQL заявления:Обновления 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;
Используя результаты из этой таблицы (работы .dm_1), я хочу изменить другую (существующую) таблицу (work.edt_ecg, созданную из предыдущей процедуры), чтобы выбрать соответствующие записи (используя тему в dm_1 и subjid в edt_eg) из таблицы в sql proc выше и обновить таблица 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;
Но это не работает для меня! Любые идеи приветствуются
Возможно, вы делаете ошибки с помощью 'left join s_raw.ds_1 c', а затем фильтруете на' c.DSYN = 'NO'': вы теряете свое * наблюдение (1) * из 'a', когда нет совпадений с. Вы должны написать 'left join s_raw.ds_1 c на a.subject = c.subject и c.DSYN = 'NO''. Те же учетные записи для вашего левого соединения на 'd' –