<?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 Finding date in a list of ranges in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685523#M207924</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I am struggling on finding a list of dates that are in the certain date range. Two datasets are many to many. Any way to do this?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The final result should be look like below.&lt;/P&gt;
&lt;TABLE width="117"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="41"&gt;ID&lt;/TD&gt;
&lt;TD width="76"&gt;SVC_DT&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;05Jan2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;20Aug2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;456&lt;/TD&gt;
&lt;TD&gt;02Jul2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;03Sep2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;04Dec2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is my two datasets:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;data Have;&lt;BR /&gt;input ID $ DATE :mmddyy10.;&lt;BR /&gt;format date date9.;&lt;BR /&gt;cards;&lt;BR /&gt;123 12/04/2018&lt;BR /&gt;123 01/05/2019&lt;BR /&gt;123 08/20/2019&lt;BR /&gt;123 12/04/2019&lt;BR /&gt;456 07/01/2019&lt;BR /&gt;456 04/02/2019&lt;BR /&gt;567 09/03/2019&lt;BR /&gt;567 12/04/2019&lt;BR /&gt;567 03/02/2019&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;data Range;&lt;BR /&gt;input ID $ START :mmddyy10. END :mmddyy10.;&lt;BR /&gt;format START END date9.;&lt;BR /&gt;cards;&lt;BR /&gt;123 10/01/2018 03/03/2019&lt;BR /&gt;123 05/01/2019 09/30/3019&lt;BR /&gt;456 05/01/2019 09/30/3019&lt;BR /&gt;567 07/01/2019 10/31/2019&lt;BR /&gt;567 11/01/2019 12/31/2019&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 21 Sep 2020 19:24:39 GMT</pubDate>
    <dc:creator>Belle</dc:creator>
    <dc:date>2020-09-21T19:24:39Z</dc:date>
    <item>
      <title>Finding date in a list of ranges</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685523#M207924</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I am struggling on finding a list of dates that are in the certain date range. Two datasets are many to many. Any way to do this?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The final result should be look like below.&lt;/P&gt;
&lt;TABLE width="117"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="41"&gt;ID&lt;/TD&gt;
&lt;TD width="76"&gt;SVC_DT&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;05Jan2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;20Aug2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;456&lt;/TD&gt;
&lt;TD&gt;02Jul2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;03Sep2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;04Dec2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is my two datasets:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;data Have;&lt;BR /&gt;input ID $ DATE :mmddyy10.;&lt;BR /&gt;format date date9.;&lt;BR /&gt;cards;&lt;BR /&gt;123 12/04/2018&lt;BR /&gt;123 01/05/2019&lt;BR /&gt;123 08/20/2019&lt;BR /&gt;123 12/04/2019&lt;BR /&gt;456 07/01/2019&lt;BR /&gt;456 04/02/2019&lt;BR /&gt;567 09/03/2019&lt;BR /&gt;567 12/04/2019&lt;BR /&gt;567 03/02/2019&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;data Range;&lt;BR /&gt;input ID $ START :mmddyy10. END :mmddyy10.;&lt;BR /&gt;format START END date9.;&lt;BR /&gt;cards;&lt;BR /&gt;123 10/01/2018 03/03/2019&lt;BR /&gt;123 05/01/2019 09/30/3019&lt;BR /&gt;456 05/01/2019 09/30/3019&lt;BR /&gt;567 07/01/2019 10/31/2019&lt;BR /&gt;567 11/01/2019 12/31/2019&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Sep 2020 19:24:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685523#M207924</guid>
      <dc:creator>Belle</dc:creator>
      <dc:date>2020-09-21T19:24:39Z</dc:date>
    </item>
    <item>
      <title>Re: Finding date in a list of ranges</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685525#M207926</link>
      <description>&lt;P&gt;SQL joins are a good option here because you can use BETWEEN. It includes the end points in the interval though, if you need to exclude those dates you 'll need to change the join logic.&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 t1.*
from have as t1
join range as t2
on t1.id=t2.id
and t1.date between t2.start and t2.end
order by 1,2;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/1655"&gt;@Belle&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I am struggling on finding a list of dates that are in the certain date range. Two datasets are many to many. Any way to do this?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The final result should be look like below.&lt;/P&gt;
&lt;TABLE width="117"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="41"&gt;ID&lt;/TD&gt;
&lt;TD width="76"&gt;SVC_DT&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;05Jan2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;20Aug2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;456&lt;/TD&gt;
&lt;TD&gt;02Jul2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;03Sep2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;04Dec2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is my two datasets:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;data Have;&lt;BR /&gt;input ID $ DATE :mmddyy10.;&lt;BR /&gt;format date date9.;&lt;BR /&gt;cards;&lt;BR /&gt;123 12/04/2018&lt;BR /&gt;123 01/05/2019&lt;BR /&gt;123 08/20/2019&lt;BR /&gt;123 12/04/2019&lt;BR /&gt;456 07/01/2019&lt;BR /&gt;456 04/02/2019&lt;BR /&gt;567 09/03/2019&lt;BR /&gt;567 12/04/2019&lt;BR /&gt;567 03/02/2019&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;data Range;&lt;BR /&gt;input ID $ START :mmddyy10. END :mmddyy10.;&lt;BR /&gt;format START END date9.;&lt;BR /&gt;cards;&lt;BR /&gt;123 10/01/2018 03/03/2019&lt;BR /&gt;123 05/01/2019 09/30/3019&lt;BR /&gt;456 05/01/2019 09/30/3019&lt;BR /&gt;567 07/01/2019 10/31/2019&lt;BR /&gt;567 11/01/2019 12/31/2019&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Sep 2020 19:30:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685525#M207926</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-09-21T19:30:12Z</dc:date>
    </item>
    <item>
      <title>Re: Finding date in a list of ranges</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685528#M207927</link>
      <description>&lt;P&gt;Hi Reeza,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for your reply.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I ran but it kept ID 123 on date 12/04/2019 which is not in the range. Any other solution?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks again.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Sep 2020 20:00:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685528#M207927</guid>
      <dc:creator>Belle</dc:creator>
      <dc:date>2020-09-21T20:00:55Z</dc:date>
    </item>
    <item>
      <title>Re: Finding date in a list of ranges</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685532#M207928</link>
      <description>&lt;P&gt;Hi Reeza,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It works, it was typo, should be 2019 instead of 3019.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks again&lt;/P&gt;</description>
      <pubDate>Mon, 21 Sep 2020 20:05:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-date-in-a-list-of-ranges/m-p/685532#M207928</guid>
      <dc:creator>Belle</dc:creator>
      <dc:date>2020-09-21T20:05:24Z</dc:date>
    </item>
  </channel>
</rss>

