<?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 One-many match merge in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310138#M66844</link>
    <description>&lt;P&gt;I have a dataset (dataset1) with provider state and provider key. In another dataset(dataset2) I have a column load_file. Looking upon this load_file tells which provider it belongs to. Each provider sends monthly , So the file name changes for every particular month for particular provider. Dataset1 has 250 distinct records and dataset2 has 2 million records. I want to match merge two datasets based on the provider key anywhere in load_file .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dataset1&lt;/P&gt;&lt;P&gt;State&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Provider_key&lt;/P&gt;&lt;P&gt;TX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 123&lt;/P&gt;&lt;P&gt;FL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 124&lt;/P&gt;&lt;P&gt;CT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 125&lt;/P&gt;&lt;P&gt;FL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 255&lt;/P&gt;&lt;P&gt;GA &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNI&lt;/P&gt;&lt;P&gt;IL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 223&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;dataset2:&lt;/P&gt;&lt;P&gt;Load_file&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;20152303_TX_123_20142356.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;IL_223_201323.CSV&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;20152303_IL_223_20160201.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;2016_UNI_FREEDOM_UNITY_20162303.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;20150506_TX123_20150506.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;And I want like: &lt;/FONT&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Load_file&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;STATE&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;PROVIDER_KEY&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20152303_TX_123_20142356.TXT&lt;/TD&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;IL_223_201323.CSV&lt;/TD&gt;&lt;TD&gt;IL&lt;/TD&gt;&lt;TD&gt;223&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20152303_IL_223_20160201.TXT&lt;/TD&gt;&lt;TD&gt;IL&lt;/TD&gt;&lt;TD&gt;223&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2016_UNI_FREEDOM_UNITY_20162303.TXT&lt;/TD&gt;&lt;TD&gt;GA&lt;/TD&gt;&lt;TD&gt;UNI&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20150506_TX123_20150506.TXT&lt;/TD&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 08 Nov 2016 16:05:11 GMT</pubDate>
    <dc:creator>SuryaKiran</dc:creator>
    <dc:date>2016-11-08T16:05:11Z</dc:date>
    <item>
      <title>One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310138#M66844</link>
      <description>&lt;P&gt;I have a dataset (dataset1) with provider state and provider key. In another dataset(dataset2) I have a column load_file. Looking upon this load_file tells which provider it belongs to. Each provider sends monthly , So the file name changes for every particular month for particular provider. Dataset1 has 250 distinct records and dataset2 has 2 million records. I want to match merge two datasets based on the provider key anywhere in load_file .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dataset1&lt;/P&gt;&lt;P&gt;State&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Provider_key&lt;/P&gt;&lt;P&gt;TX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 123&lt;/P&gt;&lt;P&gt;FL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 124&lt;/P&gt;&lt;P&gt;CT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 125&lt;/P&gt;&lt;P&gt;FL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 255&lt;/P&gt;&lt;P&gt;GA &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNI&lt;/P&gt;&lt;P&gt;IL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 223&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;dataset2:&lt;/P&gt;&lt;P&gt;Load_file&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;20152303_TX_123_20142356.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;IL_223_201323.CSV&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;20152303_IL_223_20160201.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;2016_UNI_FREEDOM_UNITY_20162303.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;20150506_TX123_20150506.TXT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;And I want like: &lt;/FONT&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Load_file&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;STATE&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;PROVIDER_KEY&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20152303_TX_123_20142356.TXT&lt;/TD&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;IL_223_201323.CSV&lt;/TD&gt;&lt;TD&gt;IL&lt;/TD&gt;&lt;TD&gt;223&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20152303_IL_223_20160201.TXT&lt;/TD&gt;&lt;TD&gt;IL&lt;/TD&gt;&lt;TD&gt;223&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2016_UNI_FREEDOM_UNITY_20162303.TXT&lt;/TD&gt;&lt;TD&gt;GA&lt;/TD&gt;&lt;TD&gt;UNI&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20150506_TX123_20150506.TXT&lt;/TD&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Nov 2016 16:05:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310138#M66844</guid>
      <dc:creator>SuryaKiran</dc:creator>
      <dc:date>2016-11-08T16:05:11Z</dc:date>
    </item>
    <item>
      <title>Re: One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310157#M66853</link>
      <description>As a start consider the CONTAINS SQL operator.&lt;BR /&gt;But since you don't seem to have a strict file naming policy, it may be hard to assure you match with the correct file name.</description>
      <pubDate>Tue, 08 Nov 2016 16:44:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310157#M66853</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2016-11-08T16:44:24Z</dc:date>
    </item>
    <item>
      <title>Re: One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310180#M66867</link>
      <description>&lt;P&gt;According to your posted dataset2 examples, I could think that the provider key&amp;nbsp;&lt;/P&gt;
&lt;P&gt;is always present after the state code separated by underscores, but then I noticed&lt;/P&gt;
&lt;P&gt;next input line:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;STRONG&gt;&lt;SPAN&gt;2016_UNI_FREEDOM_UNITY_20162303.TXT&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;without a provider key at all.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check dataset2 &amp;nbsp;and &lt;STRONG&gt;try to build rules&lt;/STRONG&gt; how to substring the state and the provider key&lt;/P&gt;
&lt;P&gt;and what to do in case it is unavailable.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Nov 2016 17:32:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310180#M66867</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2016-11-08T17:32:05Z</dc:date>
    </item>
    <item>
      <title>Re: One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310182#M66868</link>
      <description>&lt;P&gt;Use a hash for efficiency:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data D1;
input State :$2. Provider_key :$8.;
datalines;
TX           123
FL            124
CT           125
FL            255
GA          UNI
IL             223
;

data D2;
input Load_file :$128.;
datalines;
20152303_TX_123_20142356.TXT
IL_223_201323.CSV
20152303_IL_223_20160201.TXT
2016_UNI_FREEDOM_UNITY_20162303.TXT
20150506_TX123_20150506.TXT
;

data D3;
length State $2 Provider_key $8;
if _n_ = 1 then do;
	declare hash w(dataset:"D1");
	w.definekey("Provider_key");
	w.definedata("State");
	w.definedone();
	call missing(State, Provider_key);
	end;
set D2;
do i = 1 by 1 until(pos&amp;lt;=0);
    call scan(Load_file, i, pos, len, "_. ");
    if pos &amp;gt; 0 then do;
        Provider_key = substr(Load_file, pos, len);
        if w.find()=0 then output;
        end;
    end;
drop i pos len;
run;

proc print; run;


&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 08 Nov 2016 17:43:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310182#M66868</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2016-11-08T17:43:42Z</dc:date>
    </item>
    <item>
      <title>Re: One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310198#M66875</link>
      <description>&lt;P&gt;That is what my problem is. The dataset2 dosen't have proper format for the file name. It's my bad, the providers are not following the proper naming convention. What I'm doing is using If condition with FIND() function which gives me lengthy code. For 250 providers I need to wirte 250 lines IF than ELSE code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;e.g:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;IF&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; FIND(Load_file,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'123'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'i'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; state =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'TX'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; Provider =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'123'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;End&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;ELSE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;IF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt; FIND(Load_file,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'UNI'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'i'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;) &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;; state =&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'GA'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;; Provider =&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'UNI'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;...........................................................................&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;............................................etc&lt;/FONT&gt;&lt;/FONT&gt;&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, 08 Nov 2016 18:45:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310198#M66875</guid>
      <dc:creator>SuryaKiran</dc:creator>
      <dc:date>2016-11-08T18:45:13Z</dc:date>
    </item>
    <item>
      <title>Re: One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310202#M66878</link>
      <description>&lt;P&gt;Is this name correct? 20150506_TX123_20150506.TXT&lt;/P&gt;
&lt;P&gt;Or is it actually 20150506_TX_123_20150506.TXT?&lt;/P&gt;
&lt;P&gt;If the Provider_key portion of the name ALWAYS appears between underscores and never occurs with underscores when not serving as the key value then something like this may work.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
   create table want as
   select a.load_file, b.state, b.provider_key
   from dataset1 as a, dataset2 as b
   where findw(a.loadfile,b.provider_key,"_")&amp;gt;0
   ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But if the names are not consistent about use of the provider key value and or state this may become a situation where you have to use multiple searches similar to&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#ff0000" face="SAS Monospace" size="2"&gt;where&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; findw(a.loadfile,b.provider_key,&lt;/FONT&gt;&lt;FONT color="#800080" face="SAS Monospace" size="2"&gt;"_"&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;)&amp;gt;&lt;/FONT&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;0&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="SAS Monospace" size="2"&gt;&lt;FONT face="SAS Monospace" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or index(a.loadfile,catx(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="SAS Monospace" size="2"&gt;&lt;FONT color="#800080" face="SAS Monospace" size="2"&gt;&lt;FONT color="#800080" face="SAS Monospace" size="2"&gt;'_'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;&lt;FONT face="SAS Monospace" size="2"&gt;,b.state,b.provider_key)&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;0&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="SAS Monospace" size="2"&gt;&lt;FONT face="SAS Monospace" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or index(a.loadfile,cats(b.state,b.provider_key)&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;0&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Nov 2016 18:52:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310202#M66878</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-11-08T18:52:48Z</dc:date>
    </item>
    <item>
      <title>Re: One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310266#M66901</link>
      <description>&lt;P&gt;Or if you want to match keys such as TX123, use:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data D1;
input State :$2. Provider_key :$8.;
datalines;
TX           123
FL            124
CT           125
FL            255
GA          UNI
IL             223
;

data D2 / view=D2;
set D1;
length key $10;
key = Provider_key;
output;
key = cats(State, Provider_key);
output;
run;

data D3;
input Load_file :$128.;
datalines;
20152303_TX_123_20142356.TXT
IL_223_201323.CSV
20152303_IL_223_20160201.TXT
2016_UNI_FREEDOM_UNITY_20162303.TXT
20150506_TX123_20150506.TXT
;

data D4;
length key $10 State $2 Provider_key $8;
if _n_ = 1 then do;
	declare hash w(dataset:"D2");
	w.definekey("key");
	w.definedata("Provider_key");
	w.definedata("State");
	w.definedone();
	call missing(key, State, Provider_key);
	end;
set D3;
do i = 1 by 1 until(pos&amp;lt;=0);
    call scan(Load_file, i, pos, len, "_. ");
    if pos &amp;gt; 0 then do;
        key = substr(Load_file, pos, len);
        if w.find()=0 then output;
        end;
    end;
drop i pos len key;
run;

proc print; run;


&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 09 Nov 2016 03:53:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310266#M66901</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2016-11-09T03:53:48Z</dc:date>
    </item>
    <item>
      <title>Re: One-many match merge</title>
      <link>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310447#M66955</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/83078"&gt;@SuryaKiran&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;That is what my problem is. The dataset2 dosen't have proper format for the file name. It's my bad, the providers are not following the proper naming convention. What I'm doing is using If condition with FIND() function which gives me lengthy code. For 250 providers I need to wirte 250 lines IF than ELSE code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;e.g:&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;IF&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; FIND(Load_file,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'123'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'i'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; state =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'TX'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; Provider =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'123'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;End&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;ELSE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;IF&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt; FIND(Load_file,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'UNI'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'i'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;) &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;; state =&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'GA'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;; Provider =&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'UNI'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;...........................................................................&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;&lt;FONT face="Courier New" size="3"&gt;............................................etc&lt;/FONT&gt;&lt;/FONT&gt;&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;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You need to be very careful of using FIND with numeric sequences because 123 can occur in what appears to be dates in you strings such as 20123003. And if any of the dates are in yyyymmdd then 20151231. &lt;/P&gt;
&lt;P&gt;Note that UNI also might appear in other placess such as UNIVERSITY perhaps.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Nov 2016 16:47:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/One-many-match-merge/m-p/310447#M66955</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-11-09T16:47:32Z</dc:date>
    </item>
  </channel>
</rss>

