2015-08-14 130 views
0

我试图从SAS数据集更新数据库记录。这是我曾尝试:从SAS中的数据集选择更新数据库

proc sql noprint; 
UPDATE A 
SET 
A.IP = U.IP, 
A.COUNTRY = U.COUNTRY, 
A.CREATION_DATE = U.CREATION_DATE, 
A.STATUS = U.STATUS 
FROM db_table.COUNTRY A INNER JOIN SAS_dataset U 
on A.APPLICATION=U.APPLICATION; 
quit; 
run; 

得到一个错误:

106  A.IP = U.IP, 
      _ 
      73 
      76 
ERROR 73-322: Expecting an =. 

ERROR 76-322: Syntax error, statement will be ignored. 

我的其他代码插入等等工作正常。

+0

解决了吗? – Tom

+0

您无法在SAS SQL中执行此操作。你只能做UPDATE表SET变量=值[,变量=值] [WHERE表达式];每个VALUE可以是仅返回一个值的子查询。 – Tom

回答

0

为什么使用SQL你,而不是在数据的步骤使用修改语句通过子查询

proc sql; 
update tableA A 
set var= 
    (select var 
    from tableB B 
    where B.id=A.id) 
where exists (
    select 1 
    from tableB B 
    where B.id=A.id); 
quit;