<?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: getting desired result in many-to-many join Proc Sql in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286940#M58957</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding﻿&lt;/a&gt;,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/17813"&gt;@KachiM﻿&lt;/a&gt;,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza﻿&lt;/a&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the program and datasets. &amp;nbsp;The problem is I don't know how records in dat1 are releated to records in dat2.&lt;/P&gt;&lt;PRE&gt;data dat1;
  input patient_id $  code $ 10. code_startdate $ 12.;
  cards;
  A dermatitis 2015-10-05
  A dermatitis 2015-10-09
  ;
  run;

data dat2;
  input patient_id $  code $ 10. treatment_startdate $ 12.;
  cards;
  A dermatitis 2014-10-08
  A dermatitis 2015-10-07
  ;
  run;

 proc sql noprint;
    create table t1 as 
       select a.patient_id,
	          a.code,
			  a.code_startdate,
			  b.treatment_startdate
	  
		 from dat1 as a 
                 full join dat2 as b
		               on a.patient_id = b.patient_id and        
			              a.code       = b.code;
/*				where b.treatment_startdate &amp;gt; a.code_startdate;*/
quit;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 25 Jul 2016 17:16:47 GMT</pubDate>
    <dc:creator>SAS_inquisitive</dc:creator>
    <dc:date>2016-07-25T17:16:47Z</dc:date>
    <item>
      <title>getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286716#M58864</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;While using data step merge I get the warning "&amp;nbsp;&lt;STRONG&gt;"NOTE: MERGE statement has more than one data set with repeats of BY values."&amp;nbsp;&lt;/STRONG&gt; I used Proc Sql to get rid of this warning. This , however, gives all the comibinations of multiple by values. I want to keep only some observations from them. Is there a technique to get rid of undesired records without manually?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks !&lt;/P&gt;</description>
      <pubDate>Sun, 24 Jul 2016 22:42:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286716#M58864</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2016-07-24T22:42:08Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286719#M58866</link>
      <description>&lt;P&gt;You need to restrict it somehow using a where clause.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Jul 2016 23:04:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286719#M58866</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-07-24T23:04:27Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286733#M58875</link>
      <description>&lt;P&gt;Many to Many Join can be done by Data Step much more conveniently than Proc SQL. Show your data sets through datalines.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 00:42:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286733#M58875</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2016-07-25T00:42:52Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286735#M58877</link>
      <description>&lt;P&gt;There's a way to do anything. &amp;nbsp;But you would have to show an example of the result you want ... an example of the many-to-many situation before the merge, and the matching example showing which observations you want after the merge.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 00:45:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286735#M58877</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-07-25T00:45:41Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286940#M58957</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding﻿&lt;/a&gt;,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/17813"&gt;@KachiM﻿&lt;/a&gt;,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza﻿&lt;/a&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the program and datasets. &amp;nbsp;The problem is I don't know how records in dat1 are releated to records in dat2.&lt;/P&gt;&lt;PRE&gt;data dat1;
  input patient_id $  code $ 10. code_startdate $ 12.;
  cards;
  A dermatitis 2015-10-05
  A dermatitis 2015-10-09
  ;
  run;

data dat2;
  input patient_id $  code $ 10. treatment_startdate $ 12.;
  cards;
  A dermatitis 2014-10-08
  A dermatitis 2015-10-07
  ;
  run;

 proc sql noprint;
    create table t1 as 
       select a.patient_id,
	          a.code,
			  a.code_startdate,
			  b.treatment_startdate
	  
		 from dat1 as a 
                 full join dat2 as b
		               on a.patient_id = b.patient_id and        
			              a.code       = b.code;
/*				where b.treatment_startdate &amp;gt; a.code_startdate;*/
quit;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 17:16:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286940#M58957</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2016-07-25T17:16:47Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286942#M58958</link>
      <description>&lt;P&gt;Now comes the key question.&amp;nbsp; For these sample data sets you provided, what would you like the result to look like after they are combined?&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 17:24:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/286942#M58958</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-07-25T17:24:16Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287055#M58997</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding﻿&lt;/a&gt;&amp;nbsp;. The&amp;nbsp;&amp;nbsp;final data should look this - earlier code_startdate relates to earlier tretment_startdate.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Patient_id&amp;nbsp;&amp;nbsp; &amp;nbsp;code&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;code_startdate&amp;nbsp; &amp;nbsp;&amp;nbsp;treatment_startdate&lt;/P&gt;&lt;P&gt;A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dermatitis&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2015-05-05 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2014-10-08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dermatitis&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2015-05-09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2015-10-07&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jul 2016 01:12:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287055#M58997</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2016-07-26T01:12:16Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287096#M59017</link>
      <description>Ok. To be able to direct you we also need to know if your real data have any deviations from this pattern. &lt;BR /&gt;Or does a code date always get followed by a treatment, and vice versa?</description>
      <pubDate>Tue, 26 Jul 2016 05:55:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287096#M59017</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2016-07-26T05:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287149#M59033</link>
      <description>&lt;P&gt;Based on everything to date, I would suggest modifying the join. &amp;nbsp;Unfortunately, my SQL isn't strong enough to give you the exact syntax, but here's the idea.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;group by patient_id code code_startdate&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And embellish the WHERE clause:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;where treatment_startdate &amp;lt; code_startdate and (code_startdate - treatment_startdate) = min(code_startdate - treatment_startdate)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm not sure if a full join is still appropriate in that case.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You also might need to experiment with a GROUP BY clause that uses treatment_startdate instead of code_startdate.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can do the equivalent in a DATA step if that would be an acceptable approach. But it becomes cumbersome if there are additional variables involved in the "code" data set.&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jul 2016 11:31:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287149#M59033</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-07-26T11:31:41Z</dc:date>
    </item>
    <item>
      <title>Re: getting desired result in many-to-many join Proc Sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287988#M59325</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13674"&gt;@LinusH﻿&lt;/a&gt;&amp;nbsp;,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding﻿&lt;/a&gt;&amp;nbsp;Thank you. I am trying to get more information about data pattern.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jul 2016 22:35:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/getting-desired-result-in-many-to-many-join-Proc-Sql/m-p/287988#M59325</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2016-07-28T22:35:46Z</dc:date>
    </item>
  </channel>
</rss>

