它应该是一个简单的,但我被卡住了
Proc sql;
UPDATE dicofr
SET dicofr.period = correspondance.period
FROM dicofr
INNER JOIN correspondance
ON dicofr.name_fic = correspondance.name_fic;
我在想我的更新会完成,但我收到了这个错误。
271 proc sql;
272 update dicofr
273 set dicofr.period = correspondance.period
-
73
76
ERROR 73-322: Expecting an =.
ERROR 76-322: Syntax error, statement will be ignored.
我尝试使用select
proc sql;
SELECT * FROM dicofr INNER JOIN correspondance
ON dicofr.nom_fic=correspondance.nom_fic;
选择很好。
为什么?
我的SQL查询不正确吗?我不这么认为......
已修改:似乎无法进行我想要的更新。有没有办法用SAS语言做我想做的事情?
答案 0 :(得分:10)
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;
答案 1 :(得分:0)
是的,你采取了错误的做法。尝试这样的事情: -
UPDATE dicofr INNER JOIN correspondance
ON dicofr.name_fic = correspondance.name_fic;
SET dicofr.period = correspondance.period
WHERE cond....