<?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: Proc SQL Join Errors, keep all data in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576330#M163114</link>
    <description>I'm open to either SAS/Proc SQL advices. I'm more familiar with SQL than SAS, but I'm willing to learn the SAS method of doing this</description>
    <pubDate>Wed, 24 Jul 2019 18:53:31 GMT</pubDate>
    <dc:creator>jerrylshen</dc:creator>
    <dc:date>2019-07-24T18:53:31Z</dc:date>
    <item>
      <title>Proc SQL Join Errors, keep all data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576305#M163099</link>
      <description>&lt;P&gt;Hi, I'm trying to merge/join multiple tables together into, but retaining essentially all the info. I'm using SAS 9 and I'm open to any SAS/Proc SQL advice&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;╔════════════════╦═════════╦═════════╦════════╦═══════════╗
║     status     ║ Message ║ Subject ║ Field1 ║   Forms   ║
╠════════════════╬═════════╬═════════╬════════╬═══════════╣
║       1        ║ aba     ║     001 ║ one    ║ "01 &amp;amp; 02" ║
║       1        ║ bab     ║     002 ║ one    ║ "01 &amp;amp; 02" ║
╚════════════════╩═════════╩═════════╩════════╩═══════════╝&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Table 2&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=" language-sas"&gt;╔════════════════╦═════════╦═════════╦════════╦═══════════╗
║     status     ║ Message ║ Subject ║ Field2 ║   Forms   ║
╠════════════════╬═════════╬═════════╬════════╬═══════════╣
║       1        ║ aaa     ║     001 ║ two    ║ "01 &amp;amp; 02" ║
║       1        ║ vvv     ║     002 ║ two    ║ "01 &amp;amp; 02" ║
╚════════════════╩═════════╩═════════╩════════╩═══════════╝&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Expected final output:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;╔════════╦══════════╦═════════╦════════╦════════╦═══════════╗
║ status ║ Message  ║ Subject ║ Field1 ║ Field2 ║   Forms   ║
╠════════╬══════════╬═════════╬════════╬════════╬═══════════╣
║      1 ║ aba, aaa ║     001 ║ one    ║ two    ║ "01 &amp;amp; 02" ║
║      1 ║ bab, vvv ║     002 ║ one    ║ two    ║ "01 &amp;amp; 02" ║
╚════════╩══════════╩═════════╩════════╩════════╩═══════════╝&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I've tried proc sql full join and right/left join, but my results end up being something like&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;

CREATE TABLE t1 AS
SELECT *
FROM table1 full join table2 on table1.Subject = table2.Subject
            full join table3 on table1.Subject = table3.Subject
;
quit;
&lt;BR /&gt;Result's status would only be based on table1's status&lt;BR /&gt;
╔════════════════╦═════════╦═════════╦════════╦════════╦═══════════╗
║     status     ║ Message ║ Subject ║ Field1 ║ Field2 ║   Forms   ║
╠════════════════╬═════════╬═════════╬════════╬════════╬═══════════╣
║       1        ║ aba     ║     001 ║ one    ║        ║ "01 &amp;amp; 02" ║
║       1        ║ bab     ║     002 ║ one    ║        ║ "01 &amp;amp; 02" ║
║       1        ║ aaa     ║     001 ║        ║ two    ║ "01 &amp;amp; 02" ║
║       1        ║ vvv     ║     002 ║        ║ two    ║ "01 &amp;amp; 02" ║
╚════════════════╩═════════╩═════════╩════════╩════════╩═══════════╝&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Where am I going wrong with the joins here? Or how can I get the expected output?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EDIT: fixed the Expected Final Output table. So, Message should concatenate while also merging. This is probably a lot more complicated now:/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2019 18:33:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576305#M163099</guid>
      <dc:creator>jerrylshen</dc:creator>
      <dc:date>2019-07-24T18:33:38Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Errors, keep all data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576308#M163100</link>
      <description>&lt;P&gt;It appears you want to APPEND rather than JOIN&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;

set one two;

run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2019 18:12:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576308#M163100</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-07-24T18:12:50Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Errors, keep all data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576311#M163103</link>
      <description>&lt;P&gt;If you want to use PROC SQL&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data one;
infile cards ;
input (status    Message  Subject  Field1    Forms  ) ( &amp;amp;:$10.); 
cards;
 1        aba          001  one     "01 &amp;amp; 02" 
 1        bab          002  one     "01 &amp;amp; 02" 
 ;


data two;
infile cards ;
input (status    Message  Subject  Field2    Forms  ) (&amp;amp; :$10.); 
cards;
2         aaa         001  two     "01 &amp;amp; 02" 
2        vvv          002  two    "01 &amp;amp; 02"
;

proc sql;
create table want as
select * from one
outer union corr 
select * from two;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 24 Jul 2019 18:16:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576311#M163103</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-07-24T18:16:15Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Errors, keep all data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576320#M163109</link>
      <description>Shoot sorry, I just edited my question, it's a bit different now where this answer wouldn't work 100%.</description>
      <pubDate>Wed, 24 Jul 2019 18:34:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576320#M163109</guid>
      <dc:creator>jerrylshen</dc:creator>
      <dc:date>2019-07-24T18:34:33Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Errors, keep all data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576322#M163110</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/277351"&gt;@jerrylshen&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data one;
infile cards ;
input (status    Message  Subject  Field1    Forms  ) ( &amp;amp;:$10.); 
cards;
 1        aba          001  one     "01 &amp;amp; 02" 
 1        bab          002  one     "01 &amp;amp; 02" 
 ;


data two;
infile cards ;
input (status    Message  Subject  Field2    Forms  ) (&amp;amp; :$10.); 
cards;
1         aaa         001  two     "01 &amp;amp; 02" 
1        vvv          002  two    "01 &amp;amp; 02"
;


data want;
merge one two(rename=message=m);
by status;
message=catx(',',message,m);
drop m;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 24 Jul 2019 18:39:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576322#M163110</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-07-24T18:39:38Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Errors, keep all data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576324#M163111</link>
      <description>&lt;P&gt;Why PROC SQL?&amp;nbsp; Why not just use normal SAS code?&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2019 18:47:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576324#M163111</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-07-24T18:47:32Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Errors, keep all data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576330#M163114</link>
      <description>I'm open to either SAS/Proc SQL advices. I'm more familiar with SQL than SAS, but I'm willing to learn the SAS method of doing this</description>
      <pubDate>Wed, 24 Jul 2019 18:53:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Errors-keep-all-data/m-p/576330#M163114</guid>
      <dc:creator>jerrylshen</dc:creator>
      <dc:date>2019-07-24T18:53:31Z</dc:date>
    </item>
  </channel>
</rss>

