<?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 - unmatch? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507855#M136332</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/67134"&gt;@ybz12003&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then I am trying to use Proc SQL outer union corresponding to get the same result.&amp;nbsp;&amp;nbsp; It didn't work.&amp;nbsp;&amp;nbsp;&amp;nbsp; Did I use the wrong join?&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Yes, you did. I think you mean a &lt;EM&gt;full join&lt;/EM&gt; (also known as &lt;EM&gt;full outer join&lt;/EM&gt;). Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table UnMatch as
select coalesce(a.id, b.id) as id,
       coalesce(a.site, b.site) as site
from test1 a full join test2 b    
on a.id=b.id
where a.id=. | b.id=.;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 26 Oct 2018 18:31:45 GMT</pubDate>
    <dc:creator>FreelanceReinh</dc:creator>
    <dc:date>2018-10-26T18:31:45Z</dc:date>
    <item>
      <title>Proc SQL - unmatch?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507776#M136320</link>
      <description>&lt;P&gt;Hello:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After I use sort and nodup function in dataset,&amp;nbsp; I am trying to use Proc SQL in the one step to get the same result.&amp;nbsp;&amp;nbsp; However, the code didn't work.&amp;nbsp; Any idea how to fix it?&amp;nbsp; Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dataset final step is like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data UnMatch;
     merge test1_format (in=ina) test2 (in=inb);
     by id;
     if not ina or not inb;
run;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then I am trying to use Proc SQL outer union corresponding to get the same result.&amp;nbsp;&amp;nbsp; It didn't work.&amp;nbsp;&amp;nbsp;&amp;nbsp; Did I use the wrong join?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
   create table UnMatch as
   select DISTINCT a.id, a.site      
   from test1 as a
   outer union corresponding
   select test2 as b    
   on a.id=b.id
   order by b.id;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;CODE class=" language-sas"&gt;&amp;nbsp;&lt;/CODE&gt;&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Oct 2018 15:14:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507776#M136320</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2018-10-26T15:14:46Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL - unmatch?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507779#M136321</link>
      <description>&lt;P&gt;How did the use of match option based on keys arise in set operators(outer union in your case)?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think you should be looking at using joins rather than set operators imho&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"Then I am trying to use Proc SQL outer union corresponding to get the same result.&amp;nbsp;&amp;nbsp; It didn't work.&amp;nbsp;&amp;nbsp;&amp;nbsp; Did I use the wrong join?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;proc&lt;/SPAN&gt; &lt;SPAN class="token procnames"&gt;sql&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
   create &lt;SPAN class="token statement"&gt;table&lt;/SPAN&gt; UnMatch as
   &lt;SPAN class="token statement"&gt;select&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;DISTINCT&lt;/SPAN&gt; a&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;id&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; a&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;site      
   &lt;SPAN class="token keyword"&gt;from&lt;/SPAN&gt; test1 as a
   outer union corresponding
   &lt;SPAN class="token statement"&gt;select&lt;/SPAN&gt; test2 as b    
   on a&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;id&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;b&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;id&lt;/SPAN&gt;
   order &lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt; b&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;id&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;quit&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Oct 2018 15:21:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507779#M136321</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-10-26T15:21:14Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL - unmatch?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507855#M136332</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/67134"&gt;@ybz12003&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then I am trying to use Proc SQL outer union corresponding to get the same result.&amp;nbsp;&amp;nbsp; It didn't work.&amp;nbsp;&amp;nbsp;&amp;nbsp; Did I use the wrong join?&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Yes, you did. I think you mean a &lt;EM&gt;full join&lt;/EM&gt; (also known as &lt;EM&gt;full outer join&lt;/EM&gt;). Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table UnMatch as
select coalesce(a.id, b.id) as id,
       coalesce(a.site, b.site) as site
from test1 a full join test2 b    
on a.id=b.id
where a.id=. | b.id=.;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 Oct 2018 18:31:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507855#M136332</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2018-10-26T18:31:45Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL - unmatch?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507884#M136349</link>
      <description>&lt;P&gt;As the documentation says:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;There is no keyword in PROC SQL that returns unique rows from the first 
and second table, but not rows that occur in both. Here is one way that you 
can simulate this operation: 

(query1 except query2) 
union 
(query2 except query1)&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 Oct 2018 20:06:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-unmatch/m-p/507884#M136349</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-10-26T20:06:07Z</dc:date>
    </item>
  </channel>
</rss>

