【发布时间】:2019-03-14 11:28:27
【问题描述】:
我有 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 插入日期。 请提出一些想法来完成此步骤。 提前致谢!
【问题讨论】:
-
我有点迷茫,前两条 SQL 工作正常吗?如果是,那么您可以将它们放在
proc sql;和quit;之间,并以分号结尾。 -
“where a.IDnot in (select IDfrom lookup)”中有错别字(缺少空格)