sql来proc sql转换

问题描述 投票:0回答:1

我有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 proc-sql
1个回答
0
投票

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;
© www.soinside.com 2019 - 2024. All rights reserved.