我有2个表,其中包含var值,例如(ID,日期,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插入日期。 请提出一些想法以完成此步骤。 预先感谢!
答案 0 :(得分:0)
SAS SQL与您编写的SQl类似。
在SAS中,可以将SAME插入语句扭曲为proc sql,它们的工作方式就像魅力。
如果您的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;