我有2个包含var值的表(ID,date,var1,var2,var3 ....)
我需要从table2获取数据并将其添加到table1中,其中(ID或日期)不存在于table1中。
我在sql中使用以下代码从tab2到tab1获取新ID:
INSERT INTO table1
SELECT * FROM table2 a
WHERE ID not in(select ID from table1 where ID=a.ID)
以下是将tab2中现有ID的新日期添加到tab1的代码:
INSERT INTO table1
SELECT * FROM table2 a
WHERE date not in(select date from table1 where ID=a.ID)
我不知道如何在proc sql中执行此操作。请分享一种有效的方法来完成这项任务。
要插入我使用的新ID:
proc sql;
create table lookup as
select a.ID
from table1 a inner join table2 b
on a.ID = b.ID
;
insert into table1
select * from table2 a
where a.ID not in (select ID from lookup)
;
quit;
这很好用。但是,它无法为现有ID插入日期。请提出一些建议以完成此步骤。提前致谢!
SAS SQL与您编写的SQl类似。
SAME插入语句可以在SAS中作为proc sqls进行扭曲,它们就像魅力一样。
如果您的SQL确实有效,那么以下内容也会起作用。
PROC SQL;
INSERT INTO work.table1
SELECT * FROM work.table2 a
WHERE ID not in(select ID from work.table1 where ID=a.ID);
INSERT INTO work.table1
SELECT * FROM work.table2 a
WHERE date not in(select date from work.table1 where ID=a.ID)
QUIT;