<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How do I merge a variable number of data sets in work in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840578#M332345</link>
    <description>&lt;P&gt;My SAS program creates 10, more or less, data sets. I would like to merge them with the result of a final want table containing each of the 'results...' variables of each have table. Each dataset has a 'cust' variable that would be the 'by' variable in a data merge setup, or where = in SQL.&lt;/P&gt;&lt;P&gt;My problem is I might expand the number of sets or reduce them.&lt;/P&gt;&lt;P&gt;I can query dictionary and get a nice list of the tables I created.&amp;nbsp; How do I use those in a merge by or sql from?&lt;/P&gt;&lt;P&gt;Two example tables are below.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;proc sql ;
  create table tbl_haves as 
  select memname
  from dictionary.tables
  where libname = 'WORK'
    and memname like 'STK%PM' 
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;have_tbl_12ab&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;case&lt;/TD&gt;&lt;TD&gt;cust&lt;/TD&gt;&lt;TD&gt;results12ab&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;1271&lt;/TD&gt;&lt;TD&gt;-2217385&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;1279&lt;/TD&gt;&lt;TD&gt;-2231597&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;1292&lt;/TD&gt;&lt;TD&gt;-2254441&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;1305&lt;/TD&gt;&lt;TD&gt;-2276959&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;1318&lt;/TD&gt;&lt;TD&gt;-2299131&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1331&lt;/TD&gt;&lt;TD&gt;-2320933&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1344&lt;/TD&gt;&lt;TD&gt;-2342338&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1357&lt;/TD&gt;&lt;TD&gt;-2363316&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1370&lt;/TD&gt;&lt;TD&gt;-2383831&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1383&lt;/TD&gt;&lt;TD&gt;-2403842&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1396&lt;/TD&gt;&lt;TD&gt;-2423304&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;have_tbl_45cv&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;case&lt;/TD&gt;&lt;TD&gt;cust&lt;/TD&gt;&lt;TD&gt;results45cv&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;154&lt;/TD&gt;&lt;TD&gt;1271&lt;/TD&gt;&lt;TD&gt;-2291000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153&lt;/TD&gt;&lt;TD&gt;1279&lt;/TD&gt;&lt;TD&gt;-2317000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;152&lt;/TD&gt;&lt;TD&gt;1292&lt;/TD&gt;&lt;TD&gt;-2341000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;151&lt;/TD&gt;&lt;TD&gt;1305&lt;/TD&gt;&lt;TD&gt;-2364000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;TD&gt;1318&lt;/TD&gt;&lt;TD&gt;-2388000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;149&lt;/TD&gt;&lt;TD&gt;1331&lt;/TD&gt;&lt;TD&gt;-2413000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;148&lt;/TD&gt;&lt;TD&gt;1344&lt;/TD&gt;&lt;TD&gt;-2438000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;147&lt;/TD&gt;&lt;TD&gt;1357&lt;/TD&gt;&lt;TD&gt;-2460000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;146&lt;/TD&gt;&lt;TD&gt;1370&lt;/TD&gt;&lt;TD&gt;-2484000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;145&lt;/TD&gt;&lt;TD&gt;1383&lt;/TD&gt;&lt;TD&gt;-2508000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;144&lt;/TD&gt;&lt;TD&gt;1396&lt;/TD&gt;&lt;TD&gt;-2530000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 25 Oct 2022 14:59:39 GMT</pubDate>
    <dc:creator>eh51</dc:creator>
    <dc:date>2022-10-25T14:59:39Z</dc:date>
    <item>
      <title>How do I merge a variable number of data sets in work</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840578#M332345</link>
      <description>&lt;P&gt;My SAS program creates 10, more or less, data sets. I would like to merge them with the result of a final want table containing each of the 'results...' variables of each have table. Each dataset has a 'cust' variable that would be the 'by' variable in a data merge setup, or where = in SQL.&lt;/P&gt;&lt;P&gt;My problem is I might expand the number of sets or reduce them.&lt;/P&gt;&lt;P&gt;I can query dictionary and get a nice list of the tables I created.&amp;nbsp; How do I use those in a merge by or sql from?&lt;/P&gt;&lt;P&gt;Two example tables are below.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;proc sql ;
  create table tbl_haves as 
  select memname
  from dictionary.tables
  where libname = 'WORK'
    and memname like 'STK%PM' 
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;have_tbl_12ab&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;case&lt;/TD&gt;&lt;TD&gt;cust&lt;/TD&gt;&lt;TD&gt;results12ab&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;1271&lt;/TD&gt;&lt;TD&gt;-2217385&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;1279&lt;/TD&gt;&lt;TD&gt;-2231597&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;1292&lt;/TD&gt;&lt;TD&gt;-2254441&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;1305&lt;/TD&gt;&lt;TD&gt;-2276959&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;1318&lt;/TD&gt;&lt;TD&gt;-2299131&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1331&lt;/TD&gt;&lt;TD&gt;-2320933&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1344&lt;/TD&gt;&lt;TD&gt;-2342338&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1357&lt;/TD&gt;&lt;TD&gt;-2363316&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1370&lt;/TD&gt;&lt;TD&gt;-2383831&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1383&lt;/TD&gt;&lt;TD&gt;-2403842&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1396&lt;/TD&gt;&lt;TD&gt;-2423304&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;have_tbl_45cv&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;case&lt;/TD&gt;&lt;TD&gt;cust&lt;/TD&gt;&lt;TD&gt;results45cv&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;154&lt;/TD&gt;&lt;TD&gt;1271&lt;/TD&gt;&lt;TD&gt;-2291000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;153&lt;/TD&gt;&lt;TD&gt;1279&lt;/TD&gt;&lt;TD&gt;-2317000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;152&lt;/TD&gt;&lt;TD&gt;1292&lt;/TD&gt;&lt;TD&gt;-2341000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;151&lt;/TD&gt;&lt;TD&gt;1305&lt;/TD&gt;&lt;TD&gt;-2364000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;TD&gt;1318&lt;/TD&gt;&lt;TD&gt;-2388000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;149&lt;/TD&gt;&lt;TD&gt;1331&lt;/TD&gt;&lt;TD&gt;-2413000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;148&lt;/TD&gt;&lt;TD&gt;1344&lt;/TD&gt;&lt;TD&gt;-2438000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;147&lt;/TD&gt;&lt;TD&gt;1357&lt;/TD&gt;&lt;TD&gt;-2460000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;146&lt;/TD&gt;&lt;TD&gt;1370&lt;/TD&gt;&lt;TD&gt;-2484000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;145&lt;/TD&gt;&lt;TD&gt;1383&lt;/TD&gt;&lt;TD&gt;-2508000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;144&lt;/TD&gt;&lt;TD&gt;1396&lt;/TD&gt;&lt;TD&gt;-2530000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Oct 2022 14:59:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840578#M332345</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-10-25T14:59:39Z</dc:date>
    </item>
    <item>
      <title>Re: How do I merge a variable number of data sets in work</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840582#M332347</link>
      <description>&lt;P&gt;To merge multiple dataset just use the MERGE statement.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  merge ds1 ds2 ds3 ;
  by customer;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you put the list of dataset names into a macro variable you can use that to generate the code.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let dslist=ds1 ds2 ds3 ;
data want;
  merge &amp;amp;dslist;
  by customer;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can change your PROC SQL query to generate a macro variable instead of a dataset.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
select nliteral(memname) into :dslist separated by ' ' 
  from dictionary.tables
  where libname = 'WORK'
    and memname like 'STK%PM' 
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 25 Oct 2022 17:31:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840582#M332347</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-10-25T17:31:00Z</dc:date>
    </item>
    <item>
      <title>Re: How do I merge a variable number of data sets in work</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840587#M332351</link>
      <description>&lt;P&gt;What do you intend to do with the variable CASE, which appears in all data sets, but varies from one data set to the next?&lt;/P&gt;</description>
      <pubDate>Tue, 25 Oct 2022 15:11:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840587#M332351</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2022-10-25T15:11:20Z</dc:date>
    </item>
    <item>
      <title>Re: How do I merge a variable number of data sets in work</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840621#M332376</link>
      <description>&lt;P&gt;I dropped the variable 'case'.&amp;nbsp; It is not needed, but was good for tracking up until that merge.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Oct 2022 17:20:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-merge-a-variable-number-of-data-sets-in-work/m-p/840621#M332376</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-10-25T17:20:10Z</dc:date>
    </item>
  </channel>
</rss>

