BookmarkSubscribeRSS Feed
MustafaAbdelhaq
Calcite | Level 5

Hello,

So I have multiple tables with only one record in each one of them. I have another table which combines all the tables in one table.

What i'm trying to do is to calculate a value from multiple tables (subtract and add) to then create a new column with the result.

Your help is appreciated .

1 REPLY 1
PGStats
Opal | Level 21

You could use SASHELP.VTABLE and call execute to generate the SQL queries:

/* Create three example tables */

data table_A table_B table_C;

do x = 1,2,3; output; end;

run;

data _null_;

length oldTable newTable $41;

call execute("proc sql;");

do until (done);

     /* Get the table names */

    set sashelp.vtable(

        where=(libname="WORK" and memname like "TABLE_%")) end=done;

    oldTable = cats(libname, ".", memname);

     /* Create the new table name from the old one */

    newTable = cats(oldTable, "_new");

     /* Create the query with the definition of the new variable */

    call execute(catx(" ", "create table", newTable, "as select *, x+1 as y from", oldTable, ";"));

    end;

call execute("quit;");

stop;

run;

/* Execution of the SQL procedure will occur here */

PG

PG

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1201 views
  • 1 like
  • 2 in conversation