2015-08-05 3 views
0
пользователя

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; 

Но это не работает для меня! Любые идеи приветствуются

+0

Возможно, вы делаете ошибки с помощью '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' –

ответ

0

Вы должны либо создать новую таблицу или представление с подмножеством данных вам необходимо

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 изначально была написана статистиками.

+0

Perfect! Спасибо, все еще учась ... –

Смежные вопросы