2015-08-14 84 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;