它应该是一个简单的,但我被卡住了
Proc sql;
UPDATE dicofr
SET dicofr.period = correspondance.period
FROM dicofr
INNER JOIN correspondance
ON dicofr.name_fic = correspondance.name_fic;
Run Code Online (Sandbox Code Playgroud)
我在想我的更新会完成,但我得到了这个错误.
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.
Run Code Online (Sandbox Code Playgroud)
我试过直接加入一个 select
proc sql;
SELECT * FROM dicofr INNER JOIN correspondance
ON dicofr.nom_fic=correspondance.nom_fic;
Run Code Online (Sandbox Code Playgroud)
选择很好.
怎么会?
我的SQL查询不正确吗?我不这么认为......
编辑:似乎我想做的更新是不可能的.有没有办法用SAS语言做我想要的?
Joe*_*Joe 10
由于某种原因,SAS不支持UPDATE语句中的JOIN.您需要通过嵌套选择来完成.
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19853 次 |
| 最近记录: |