Well, its a bit vague but what you will need to do is to get a list from SASHELP.VTABLE with a where clause of your libname. This will give you a list of the datasets in that libname. You can then use that call execute a macro which will sort and merge that onto a base table. E.g %macro add (ds); proc sort data=&ds. out=temp; by idvar; run; data base; merge base temp; by idvar; run; %mend add; data list_of_tables (keep=libname memname); set sashelp.vtable; where libname="WORK"; if _n_=1 then do; call execute('data base; set '||strip(libname)||"."||strip(memname)||'; run;'); /* This takes the first dataset as the base */ end; else call execute('%add('||strip(libname)||"."||strip(memname)||';'); run; Of course this assumes a lot of things - datasets are the same, have the same idvar, there is more than 1 etc. You could build an SQL statement using call execute, this is limited to 256 tables though. As for you coalesce, well, in the merge I would rename the temp variables, and then compare.
... View more