<?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: Date Help in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Date-Help/m-p/523993#M142440</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Member           AdmitDate   : date9.       DischargeDate : date9.;
format  AdmitDate  DischargeDate : date9.;
cards;
111                   17MAY2017         17MAY2017
111                   18MAY2017         18MAY2017
111                   16MAY2017         24MAY2017
222                   02JAN2016         05JAN2016
222                   03JAN2016         04JAN2016
333                   03MAR2017        04MAR2017
333                   22FEB2017         09MAR2017
333                   01JUL2017          01JUL2017
;
run;
data temp;
 set have;
 do date=AdmitDate to DischargeDate;
  output;
 end;
 format date date9.;
 keep member date;
run;
proc sort data=temp nodupkey;
by member date;
run;
data temp;
 set temp;
 by member;
 if first.member or dif(date) ne 1 then group+1;
run;
proc summary data=temp;
by member group;
var date;
output out=want min=AdmitDate max=DischargeDate;
run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 01 Jan 2019 11:31:26 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2019-01-01T11:31:26Z</dc:date>
    <item>
      <title>Date Help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Help/m-p/523889#M142402</link>
      <description>&lt;P&gt;I have a program that I need to end up with a member and all their dates for admission and discharge, sometimes there are multiple dates that overlap, so if that is the case then I need to just have one record with the entire time period.&amp;nbsp; Example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Member&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Admit Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Discharge Date&lt;/P&gt;&lt;P&gt;111&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17MAY2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17MAY2017&lt;/P&gt;&lt;P&gt;111&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18MAY2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18MAY2017&lt;/P&gt;&lt;P&gt;111&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16MAY2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;24MAY2017&lt;/P&gt;&lt;P&gt;222&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;02JAN2016&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;05JAN2016&lt;/P&gt;&lt;P&gt;222&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;03JAN2016&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;04JAN2016&lt;/P&gt;&lt;P&gt;333&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;03MAR2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 04MAR2017&lt;/P&gt;&lt;P&gt;333&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;22FEB2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;09MAR2017&lt;/P&gt;&lt;P&gt;333&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;01JUL2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 01JUL2017&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I would need here is to pull the following so I have a continuous date range for those overlapping :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Member&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Admit Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Discharge Date&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;111&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16MAY2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;24MAY2017&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;222&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;02JAN2016&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;05JAN2016&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;333&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;22FEB2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;09MAR2017&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;333&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;01JUL2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;01JUL2017&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 30 Dec 2018 22:16:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Help/m-p/523889#M142402</guid>
      <dc:creator>cjacobson45</dc:creator>
      <dc:date>2018-12-30T22:16:01Z</dc:date>
    </item>
    <item>
      <title>Re: Date Help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Help/m-p/523894#M142406</link>
      <description>&lt;P&gt;You should be able to search for this result as it is a common question.&amp;nbsp; In SAS it is easier to do in a data step since PROC SQL does not support the windowing function syntax of newer SQL dialects.&lt;/P&gt;
&lt;P&gt;Make sure to order the data and that your records do not have discharge before admit.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort;
  by member admit discharge; 
run;

data want ;
  set have ;
  by member ;
  retain first last ;
  format first last yymmdd10. ;
  if first.member then call missing(first,last);
  else if (admit-1 &amp;gt; last) then do;
    output; 
    call missing(first,last);
  end;
  first = min(first,admit);
  last = max(last,discharge);
  if last.member then output;
  drop admit discharge;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 324px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/25913iE1344A71B3DD3089/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 30 Dec 2018 23:06:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Help/m-p/523894#M142406</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-12-30T23:06:57Z</dc:date>
    </item>
    <item>
      <title>Re: Date Help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Help/m-p/523993#M142440</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Member           AdmitDate   : date9.       DischargeDate : date9.;
format  AdmitDate  DischargeDate : date9.;
cards;
111                   17MAY2017         17MAY2017
111                   18MAY2017         18MAY2017
111                   16MAY2017         24MAY2017
222                   02JAN2016         05JAN2016
222                   03JAN2016         04JAN2016
333                   03MAR2017        04MAR2017
333                   22FEB2017         09MAR2017
333                   01JUL2017          01JUL2017
;
run;
data temp;
 set have;
 do date=AdmitDate to DischargeDate;
  output;
 end;
 format date date9.;
 keep member date;
run;
proc sort data=temp nodupkey;
by member date;
run;
data temp;
 set temp;
 by member;
 if first.member or dif(date) ne 1 then group+1;
run;
proc summary data=temp;
by member group;
var date;
output out=want min=AdmitDate max=DischargeDate;
run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 01 Jan 2019 11:31:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Help/m-p/523993#M142440</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-01-01T11:31:26Z</dc:date>
    </item>
  </channel>
</rss>

