Help using Base SAS procedures

table update with condition

Reply
Frequent Contributor
Posts: 75

table update with condition

It should be an easy one but I'm stuck

Proc sql;  UPDATE dicofr SET 

dicofr.period = correspondance.period

FROM  dicofr INNER JOIN correspondance ON dicofr.name_fic = correspondance.name_fic;

I was thinking my update would be done but I got this error instead.

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.

I've tried with a straight join with a select

proc sql; SELECT * FROM dicofr INNER JOIN correspondance ON dicofr.nom_fic=correspondance.nom_fic;

The select is fine.

How come?

Is my SQL query not correct? I don't think so ...

Edited: It seems the update I want to do is not possible. Is there a way to do what I want with SAS language?

Frequent Contributor
Posts: 75

Re: table update with condition

I found my answer.

proc sql;

     update dicofr as h1

     set period=(select period from correspondance as h2 where h1.name_fic=h2.name_fic)

     where name_fic in (select name_fic from correspondance);

quit;

Ask a Question
Discussion stats
  • 1 reply
  • 372 views
  • 3 likes
  • 1 in conversation