<?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: Get the closest date to index date by ID in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Get-the-closest-date-to-index-date-by-ID/m-p/488729#M127424</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID	(Indexdate	Startdate) (:mmddyy10.);
format Indexdate	Startdate mmddyy10.;
cards;
111	8/1/2018	8/29/2018
111	8/1/2018	8/21/2018
111	8/1/2018	7/20/2018
222	6/4/2017	6/1/2018
222	6/4/2017	6/3/2018
222	6/4/2017	6/4/2017
222	6/4/2017	7/4/2018
333	3/2/2015	12/4/2014
333	3/2/2015	4/24/2015
333	3/2/2015	4/25/2015
;

proc sql;
create table want(drop=d) as
select *, case when (Startdate &amp;lt;= Indexdate) then (Indexdate-Startdate+1) end as d
from have
group by id
having d=min(d);
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 21 Aug 2018 21:50:26 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2018-08-21T21:50:26Z</dc:date>
    <item>
      <title>Get the closest date to index date by ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Get-the-closest-date-to-index-date-by-ID/m-p/488722#M127421</link>
      <description>&lt;P&gt;Hi SAS users,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please help me with the following question.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Indexdate&lt;/TD&gt;&lt;TD&gt;Startdate&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;8/1/2018&lt;/TD&gt;&lt;TD&gt;8/29/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;8/1/2018&lt;/TD&gt;&lt;TD&gt;8/21/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;8/1/2018&lt;/TD&gt;&lt;TD&gt;7/20/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;222&lt;/TD&gt;&lt;TD&gt;6/4/2017&lt;/TD&gt;&lt;TD&gt;6/1/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;222&lt;/TD&gt;&lt;TD&gt;6/4/2017&lt;/TD&gt;&lt;TD&gt;6/3/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;222&lt;/TD&gt;&lt;TD&gt;6/4/2017&lt;/TD&gt;&lt;TD&gt;6/4/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;222&lt;/TD&gt;&lt;TD&gt;6/4/2017&lt;/TD&gt;&lt;TD&gt;7/4/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;333&lt;/TD&gt;&lt;TD&gt;3/2/2015&lt;/TD&gt;&lt;TD&gt;12/4/2014&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;333&lt;/TD&gt;&lt;TD&gt;3/2/2015&lt;/TD&gt;&lt;TD&gt;4/24/2015&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;333&lt;/TD&gt;&lt;TD&gt;3/2/2015&lt;/TD&gt;&lt;TD&gt;4/25/2015&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to get the startdate that is closest and before or on indexdate (&amp;nbsp;Startdate &amp;lt;= Indexdate by ID).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output should look like.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Want date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;7/20/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;222&lt;/TD&gt;&lt;TD&gt;6/4/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;333&lt;/TD&gt;&lt;TD&gt;12/4/2014&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for taking time to answer my question.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Aug 2018 21:23:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Get-the-closest-date-to-index-date-by-ID/m-p/488722#M127421</guid>
      <dc:creator>Schen</dc:creator>
      <dc:date>2018-08-21T21:23:22Z</dc:date>
    </item>
    <item>
      <title>Re: Get the closest date to index date by ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Get-the-closest-date-to-index-date-by-ID/m-p/488729#M127424</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID	(Indexdate	Startdate) (:mmddyy10.);
format Indexdate	Startdate mmddyy10.;
cards;
111	8/1/2018	8/29/2018
111	8/1/2018	8/21/2018
111	8/1/2018	7/20/2018
222	6/4/2017	6/1/2018
222	6/4/2017	6/3/2018
222	6/4/2017	6/4/2017
222	6/4/2017	7/4/2018
333	3/2/2015	12/4/2014
333	3/2/2015	4/24/2015
333	3/2/2015	4/25/2015
;

proc sql;
create table want(drop=d) as
select *, case when (Startdate &amp;lt;= Indexdate) then (Indexdate-Startdate+1) end as d
from have
group by id
having d=min(d);
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Aug 2018 21:50:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Get-the-closest-date-to-index-date-by-ID/m-p/488729#M127424</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-08-21T21:50:26Z</dc:date>
    </item>
    <item>
      <title>Re: Get the closest date to index date by ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Get-the-closest-date-to-index-date-by-ID/m-p/488731#M127426</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
do until(last.id);
set have;
by id;
call missing(k);
if Startdate &amp;lt;= Indexdate then k=Indexdate-Startdate+1;
min=min(min,k);
end;
do until(last.id);
set have;
by id;
k=Indexdate-Startdate+1;
if min=k then output;
end;
drop k min;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 21 Aug 2018 21:57:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Get-the-closest-date-to-index-date-by-ID/m-p/488731#M127426</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-08-21T21:57:31Z</dc:date>
    </item>
  </channel>
</rss>

