2014-11-14 1 views
0

У меня есть 2 таблицы, как следующие:SAS манипулирования данными для 2 таблицы на основе одного столбца ID

Таблица 1

data table1; 
    input id $ value; 
    datalines; 
    A 1 
    A 2 
    B 1 
    B 2 
    C 1 
    D 1 
    ; 

Таблица 2

data table2; 
    input id $ value; 
    datalines; 
    A 1 
    B 2 
    C 1 
    D 1 
    E 1 
    ; 

Как вы можете заметить, что уникальный id для таблицы 1 - A, B, C, D. Я хотел бы удалить наблюдения, эти идентификаторы в таблице 2 не отображаются в таблице 1.

Поэтому последнее замечание о table2 следует исключить, поскольку Е не в {A, B, C, D}

Желаемая выход:

A 1 
    B 2 
    C 1 
    D 1 

ответ

1

Вы можете сделать это с proc sql:

proc sql; 
    delete from table2 
     where not exists (select 1 from table1 where table1.id = table2.id); 
+0

благодарит за вашу помощь. это именно то, что я хочу. – useR

+0

Что делать, если я хочу создать новое имя таблицы Table2_1? – useR

+0

@useR. , , Я не понимаю ваш второй комментарий. В общем, вы должны задавать вопросы как вопросы, а не комментарии. –