<?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 Re: Join table on an item in a set of columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820771#M324013</link>
    <description>&lt;P&gt;SAS SQL optimizer does poorly on joins involving OR conditions. Joining&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;on whichc(B.required_item, A.id1, A.id2, A.id3) ne 0&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;might run faster.&lt;/P&gt;</description>
    <pubDate>Tue, 28 Jun 2022 19:09:58 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2022-06-28T19:09:58Z</dc:date>
    <item>
      <title>Join table on an item in a set of columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820693#M323965</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need to join a table when an item is in a set of the three columns:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Master list (the full table is thousands entries) table A&lt;/P&gt;
&lt;TABLE width="770"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="102"&gt;id1&lt;/TD&gt;
&lt;TD width="102"&gt;id2&lt;/TD&gt;
&lt;TD width="102"&gt;id3&lt;/TD&gt;
&lt;TD width="134"&gt;item_key&lt;/TD&gt;
&lt;TD width="84"&gt;item_name&lt;/TD&gt;
&lt;TD width="174"&gt;manufacture_date&lt;/TD&gt;
&lt;TD width="72"&gt;expiry_date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;S123&lt;/TD&gt;
&lt;TD&gt;F123&lt;/TD&gt;
&lt;TD&gt;G111&lt;/TD&gt;
&lt;TD&gt;A123&lt;/TD&gt;
&lt;TD&gt;APPLE&lt;/TD&gt;
&lt;TD&gt;1-Jan-2020&lt;/TD&gt;
&lt;TD&gt;1-Jun-2021&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;S124&lt;/TD&gt;
&lt;TD&gt;F234&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;G345&lt;/TD&gt;
&lt;TD&gt;A234&lt;/TD&gt;
&lt;TD&gt;BERRY&lt;/TD&gt;
&lt;TD&gt;2-Jan-2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;S125&lt;/TD&gt;
&lt;TD&gt;F345&lt;/TD&gt;
&lt;TD&gt;F234&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;A345&lt;/TD&gt;
&lt;TD&gt;CARROR&lt;/TD&gt;
&lt;TD&gt;3-Jan-2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;S126&lt;/TD&gt;
&lt;TD&gt;F456&lt;/TD&gt;
&lt;TD&gt;G813&lt;/TD&gt;
&lt;TD&gt;A456&lt;/TD&gt;
&lt;TD&gt;DIAMOND&lt;/TD&gt;
&lt;TD&gt;4-Jan-2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;each id number is distinct in a column.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and a purchase list (actual list is thousands entries) table B:&lt;/P&gt;
&lt;TABLE width="102"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="102"&gt;required_ item&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;F234&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;S123&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;F234&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;G813&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Expected output table&lt;/P&gt;
&lt;TABLE width="524"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="102"&gt;item_key&lt;/TD&gt;
&lt;TD width="102"&gt;required item&lt;/TD&gt;
&lt;TD width="102"&gt;item_key&lt;/TD&gt;
&lt;TD width="134"&gt;manufacture_date&lt;/TD&gt;
&lt;TD width="84"&gt;expiry_date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A234&lt;/TD&gt;
&lt;TD&gt;F234&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;BERRY&lt;/TD&gt;
&lt;TD&gt;2-Jan-2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A123&lt;/TD&gt;
&lt;TD&gt;S123&lt;/TD&gt;
&lt;TD&gt;APPLE&lt;/TD&gt;
&lt;TD&gt;1-Jan-2020&lt;/TD&gt;
&lt;TD&gt;1-Jun-2021&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A345&lt;/TD&gt;
&lt;TD&gt;F234&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;CARROR&lt;/TD&gt;
&lt;TD&gt;3-Jan-2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A456&lt;/TD&gt;
&lt;TD&gt;G813&lt;/TD&gt;
&lt;TD&gt;DIAMOND&lt;/TD&gt;
&lt;TD&gt;4-Jan-2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;the required_item needs to be in the output for cross referencing.&lt;/P&gt;
&lt;P&gt;I've tried run left join on B.required_item=A.ID1 OR&amp;nbsp;B.required_item=A.ID2 OR&amp;nbsp;B.required_item=A.ID3, however it was taking very long&amp;nbsp; to run.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does sas has a function to extract an entry when one is in the set, for this example when&amp;nbsp;B.required_item in&amp;nbsp; set (A.ID1,A.ID2,A.ID3)?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kindly advise.&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jun 2022 14:15:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820693#M323965</guid>
      <dc:creator>sarahzhou</dc:creator>
      <dc:date>2022-06-28T14:15:27Z</dc:date>
    </item>
    <item>
      <title>Re: Join table on an item in a set of columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820712#M323974</link>
      <description>&lt;P&gt;Take the first set and make it so that you have ONE "id" variable per observation and the same key, name and date variables. Yes it will be bigger.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It will also allow a simple&amp;nbsp; SQl "join on" to match your "required_item" data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If your "master" data does not change often then this is likely a more robust approach in general than attempting to search multiple variables. One join instead of 3 should run quicker.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jun 2022 15:26:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820712#M323974</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2022-06-28T15:26:07Z</dc:date>
    </item>
    <item>
      <title>Re: Join table on an item in a set of columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820771#M324013</link>
      <description>&lt;P&gt;SAS SQL optimizer does poorly on joins involving OR conditions. Joining&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;on whichc(B.required_item, A.id1, A.id2, A.id3) ne 0&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;might run faster.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jun 2022 19:09:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820771#M324013</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2022-06-28T19:09:58Z</dc:date>
    </item>
    <item>
      <title>Re: Join table on an item in a set of columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820940#M324073</link>
      <description>&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Wed, 29 Jun 2022 15:14:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-table-on-an-item-in-a-set-of-columns/m-p/820940#M324073</guid>
      <dc:creator>sarahzhou</dc:creator>
      <dc:date>2022-06-29T15:14:55Z</dc:date>
    </item>
  </channel>
</rss>

