<?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: SAS Merge logic in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377895#M90771</link>
    <description>&lt;P&gt;Regardless of whether you use a datastep or proc sql, easier if you separate the comma delimited entries during the input process. Here is a datastep approach:&lt;/P&gt;
&lt;PRE&gt;data a;
  input VAR_1;
  cards;
123
456
789
1
34
45
;
data b;
  infile cards delimiter=',';
  input VAR_1 @@;
  cards;
123,456,345
789,2
34
67
;

proc sort data=a;
  by var_1;
run;

proc sort data=b;
  by var_1;
run;

data want;
  merge a (in=ina) b (in=inb);
  by var_1;
  if inb and not ina;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 20 Jul 2017 19:02:14 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2017-07-20T19:02:14Z</dc:date>
    <item>
      <title>SAS Merge logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377861#M90754</link>
      <description>&lt;P&gt;Hi all.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Need a solution for Merge operation i Need to perform on a varaible.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is the Dataset A&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=" language-sas"&gt;VAR_1
123
456
789
1
34
45&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Below is Dataset B (Please note, some values are separated by comma )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;VAR_1
123,456,345
789,2
34
67&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;The output should look like below.(It should look for Var_1 values from A, try and match with VAr_1 from B and if they dont match, it should output)&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;VAR_WANT
345
2
67&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Please suggest an efficient way to do this.&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>Thu, 20 Jul 2017 17:51:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377861#M90754</guid>
      <dc:creator>adityaa9z</dc:creator>
      <dc:date>2017-07-20T17:51:02Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Merge logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377889#M90767</link>
      <description>&lt;P&gt;You'll need to unwind all the comma-separated entries:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data check_these;&lt;/P&gt;
&lt;P&gt;set B;&lt;/P&gt;
&lt;P&gt;do i=1 to countw(var1, ',');&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; var_want = scan(var1, i, ',');&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;keep var_want;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then there are many ways to find mismatches.&amp;nbsp; Here's one:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sql;&lt;/P&gt;
&lt;P&gt;create table mismatch as select var_want from check_these&lt;/P&gt;
&lt;P&gt;where var_want not in (select distinct var_1 from a);&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code is untested, so minor tweaking might be necessary.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Jul 2017 18:52:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377889#M90767</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-07-20T18:52:18Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Merge logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377895#M90771</link>
      <description>&lt;P&gt;Regardless of whether you use a datastep or proc sql, easier if you separate the comma delimited entries during the input process. Here is a datastep approach:&lt;/P&gt;
&lt;PRE&gt;data a;
  input VAR_1;
  cards;
123
456
789
1
34
45
;
data b;
  infile cards delimiter=',';
  input VAR_1 @@;
  cards;
123,456,345
789,2
34
67
;

proc sort data=a;
  by var_1;
run;

proc sort data=b;
  by var_1;
run;

data want;
  merge a (in=ina) b (in=inb);
  by var_1;
  if inb and not ina;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Jul 2017 19:02:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377895#M90771</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-07-20T19:02:14Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Merge logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377901#M90775</link>
      <description>Thanks Art. But the data is already present in the tables which is why I need to find a way around it.</description>
      <pubDate>Thu, 20 Jul 2017 19:19:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Merge-logic/m-p/377901#M90775</guid>
      <dc:creator>adityaa9z</dc:creator>
      <dc:date>2017-07-20T19:19:16Z</dc:date>
    </item>
  </channel>
</rss>

