<?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: Merge/Join of two tables by row and column value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Merge-Join-of-two-tables-by-row-and-column-value/m-p/448689#M112889</link>
    <description>&lt;P&gt;Just run this query,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data test1;&lt;BR /&gt;input part_code$ miami la;&lt;BR /&gt;cards;&lt;BR /&gt;A_1 60000 38000&lt;BR /&gt;A_2 5000 2000&lt;BR /&gt;A_3 1000 60000&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc transpose data = test1 out = test2;&lt;BR /&gt;by part_code;&lt;BR /&gt;var miami la;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test3;&lt;BR /&gt;input part_code$ city$;&lt;BR /&gt;cards;&lt;BR /&gt;A_1 Miami&lt;BR /&gt;A_1 LA&lt;BR /&gt;A_2 Miami&lt;BR /&gt;A_2 LA&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table test4 as&lt;BR /&gt;select distinct&lt;BR /&gt;a.*&lt;BR /&gt;from test2 a&lt;BR /&gt;left join test3 b&lt;BR /&gt;on a.part_code = b.part_code;&lt;BR /&gt;quit;&lt;/P&gt;</description>
    <pubDate>Mon, 26 Mar 2018 15:53:05 GMT</pubDate>
    <dc:creator>SASUser_22</dc:creator>
    <dc:date>2018-03-26T15:53:05Z</dc:date>
    <item>
      <title>Merge/Join of two tables by row and column value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-Join-of-two-tables-by-row-and-column-value/m-p/448648#M112874</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there a way to join/merge two datasets/tables in wich one register in dataset B refers at the same time to a row&amp;nbsp; (condition 1) and&amp;nbsp; to a column (condition 2) of dataset A?:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Condition 1: b.City = b.getColumnName() AND&amp;nbsp;&lt;/P&gt;&lt;P&gt;Condition 2: b.Part_code&amp;nbsp; =&amp;nbsp;a.Part_code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I am looking for would be something equivalent to the getColumnName(), to be able to make the comparison at the same time by row and by column.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Datasets are as follows (simplified examples):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dataset A:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Part_code&amp;nbsp; &amp;nbsp; &amp;nbsp;Miami&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LA&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;A_1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;60000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;38000&lt;/P&gt;&lt;P&gt;A_2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2000&lt;/P&gt;&lt;P&gt;A_3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 60000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dataset B:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Part_code&amp;nbsp; &amp;nbsp; &amp;nbsp;City&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;A_1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Miami&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired&amp;nbsp;output (joined):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Part_code&amp;nbsp; &amp;nbsp; &amp;nbsp;City&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Part_stock&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;A_1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Miami&amp;nbsp; &amp;nbsp; &amp;nbsp;60000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much in advance!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Mar 2018 14:44:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-Join-of-two-tables-by-row-and-column-value/m-p/448648#M112874</guid>
      <dc:creator>Johnd1</dc:creator>
      <dc:date>2018-03-26T14:44:50Z</dc:date>
    </item>
    <item>
      <title>Re: Merge/Join of two tables by row and column value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-Join-of-two-tables-by-row-and-column-value/m-p/448664#M112878</link>
      <description>&lt;P&gt;I suspect you will have lots of issues but changing your data from&lt;/P&gt;
&lt;P&gt;Dataset A:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Part_code&amp;nbsp; &amp;nbsp; &amp;nbsp;Miami&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LA&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A_1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;60000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;38000&lt;/P&gt;
&lt;P&gt;A_2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2000&lt;/P&gt;
&lt;P&gt;A_3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1000&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 60000&lt;/P&gt;
&lt;P&gt;&amp;nbsp;To&lt;/P&gt;
&lt;P&gt;Part_code City&amp;nbsp;&amp;nbsp;&amp;nbsp; Part_stock&lt;/P&gt;
&lt;P&gt;A_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Miami&amp;nbsp; 60000&lt;/P&gt;
&lt;P&gt;A_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;38000&lt;/P&gt;
&lt;P&gt;A_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Miami&amp;nbsp; 5000&lt;/P&gt;
&lt;P&gt;A_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&lt;/P&gt;
&lt;P&gt;Which proc transpose should accomplish easily.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Would be quite easy:&lt;/P&gt;
&lt;PRE&gt;proc sql;
   select c.part_code, c.city, c.part_stock
   from  datab as b
         left join
         dataAtransposed  as c
         on b.part_code=c.part_code
         and b.city=c.city
   ;
quit;&lt;/PRE&gt;
&lt;P&gt;Data where the field name contain information is generally going to be a problem for queries. Normalize the data with variables holding the values you need to reference will make things much easier in the long run.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We might be able to come up with a solution that works for 2 cities that would break when you add in a third, or fourth or fifth.&lt;/P&gt;
&lt;P&gt;The above suggestion will work for any number of cities IF the data is structured correctly.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Mar 2018 15:13:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-Join-of-two-tables-by-row-and-column-value/m-p/448664#M112878</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-03-26T15:13:37Z</dc:date>
    </item>
    <item>
      <title>Re: Merge/Join of two tables by row and column value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-Join-of-two-tables-by-row-and-column-value/m-p/448689#M112889</link>
      <description>&lt;P&gt;Just run this query,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data test1;&lt;BR /&gt;input part_code$ miami la;&lt;BR /&gt;cards;&lt;BR /&gt;A_1 60000 38000&lt;BR /&gt;A_2 5000 2000&lt;BR /&gt;A_3 1000 60000&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc transpose data = test1 out = test2;&lt;BR /&gt;by part_code;&lt;BR /&gt;var miami la;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test3;&lt;BR /&gt;input part_code$ city$;&lt;BR /&gt;cards;&lt;BR /&gt;A_1 Miami&lt;BR /&gt;A_1 LA&lt;BR /&gt;A_2 Miami&lt;BR /&gt;A_2 LA&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table test4 as&lt;BR /&gt;select distinct&lt;BR /&gt;a.*&lt;BR /&gt;from test2 a&lt;BR /&gt;left join test3 b&lt;BR /&gt;on a.part_code = b.part_code;&lt;BR /&gt;quit;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Mar 2018 15:53:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-Join-of-two-tables-by-row-and-column-value/m-p/448689#M112889</guid>
      <dc:creator>SASUser_22</dc:creator>
      <dc:date>2018-03-26T15:53:05Z</dc:date>
    </item>
  </channel>
</rss>

