<?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: How to calculate total stay with allowable gaps in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/577005#M163424</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/15475"&gt;@andreas_lds&lt;/a&gt;&amp;nbsp; and &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp; Thank you to you both! I used a combination of what you both had suggested to get what I needed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I got and it worked for what I needed!&lt;/P&gt;&lt;P&gt;Thank you again&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;data diff;
merge have
HAVE(firstobs=2 keep=ID START_DATE end_date rename=(ID=nID START_DATE=nSTART_DATE end_date=nend_date));

diff_date=end_date-start_date;
 if ID=NID then do;
diff_btwn_date=nSTART_DATE-end_date;
end;

run;


proc sql;
Select a.*, b. total_stay
From diff a 
join  (Select distinct ID, Sum(diff_date) as total_stay
                                       From diff 
                                       Where diff_btwn_date&amp;lt;=20
                                        Group by ID) b
on a.id=b.id and a.diff_btwn_date&amp;lt;=20
Union
Select a.*, diff_date as total_stay
From diff a
Where a.diff_btwn_date&amp;gt;20
group By id, start_date;
quit;&lt;/PRE&gt;</description>
    <pubDate>Fri, 26 Jul 2019 18:01:50 GMT</pubDate>
    <dc:creator>sas_student1</dc:creator>
    <dc:date>2019-07-26T18:01:50Z</dc:date>
    <item>
      <title>How to calculate total stay with allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576788#M163317</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a question regarding counting days of overall treatment stays by client ID. What I would like to know is for each client what was the total length of treatment they had allowing for a&amp;nbsp;20 day gap between treatment.&lt;/P&gt;&lt;P&gt;For example in the data below for client 1 allowing for a 20 day gap between the first end_date and the next start date the client has 169, so I would want a column that would indicate for each row 169 days. For client 3 the difference between the end date of the first record to the next record is 33 days (more than the allowable 20 days)&amp;nbsp;so the first record would be marked as 33 days, but the next three records that gaps are less than 20 days so each row would have the total 155 days labeled.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a sample of the data I have and what the final output I would like :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;data have; 
informat ID $1. start_date mmddyy10. end_date mmddyy10.;
input ID  start_date  end_date ;
format start_date end_date mmddyy10.;
datalines; 
1	01/01/2018	01/10/2018
1	01/11/2018	01/31/2018
1	02/05/2018	02/15/2018
1	02/19/2018	05/30/2018
1	06/15/2018	06/30/2018
1	07/05/2018	07/20/2018
2	01/05/2018	01/06/2018
3	02/05/2018	02/15/2018
3	03/20/2018	04/15/2018
3	04/20/2018	07/31/2018
3	08/14/2018	09/10/2018
; run;&lt;/PRE&gt;&lt;P&gt;diff_date is the difference between end_date and start_date on the same row.&lt;/P&gt;&lt;P&gt;diff_btwn_date is the difference between the end_date of the first row to the start_date of the next row by Patient ID&lt;/P&gt;&lt;P&gt;Total_stay is the column I would like to get to.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Patient ID&lt;/TD&gt;&lt;TD&gt;Start_date&lt;/TD&gt;&lt;TD&gt;End_date&lt;/TD&gt;&lt;TD&gt;diff_date&lt;/TD&gt;&lt;TD&gt;diff_btwn_date&lt;/TD&gt;&lt;TD&gt;Total_stay&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/1/2018&lt;/TD&gt;&lt;TD&gt;1/10/2018&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/11/2018&lt;/TD&gt;&lt;TD&gt;1/31/2018&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2/5/2018&lt;/TD&gt;&lt;TD&gt;2/15/2018&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2/19/2018&lt;/TD&gt;&lt;TD&gt;5/30/2018&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/15/2018&lt;/TD&gt;&lt;TD&gt;6/30/2018&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/5/2018&lt;/TD&gt;&lt;TD&gt;7/20/2018&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1/5/2018&lt;/TD&gt;&lt;TD&gt;1/6/2018&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2/5/2018&lt;/TD&gt;&lt;TD&gt;2/15/2018&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;33&lt;/TD&gt;&lt;TD&gt;33&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3/20/2018&lt;/TD&gt;&lt;TD&gt;4/15/2018&lt;/TD&gt;&lt;TD&gt;26&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;155&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;4/20/2018&lt;/TD&gt;&lt;TD&gt;7/31/2018&lt;/TD&gt;&lt;TD&gt;102&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;155&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;8/14/2018&lt;/TD&gt;&lt;TD&gt;9/10/2018&lt;/TD&gt;&lt;TD&gt;27&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;155&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;&lt;P&gt;Thanks in advance&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2019 03:10:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576788#M163317</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2019-07-26T03:10:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate total stay with allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576805#M163323</link>
      <description>&lt;P&gt;I don't understand how you calculate the stay length. Your numbers look wrong to me.&lt;/P&gt;
&lt;P&gt;Here are my calculations.&lt;/P&gt;
&lt;P&gt;Just merge back to propagate the duration to all records if needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data DIF;
  merge HAVE
        HAVE(firstobs=2 keep=ID START_DATE rename=(ID=NEXT_ID START_DATE=NEXT_DATE));
  retain START;       format START date9.;
  if ID ne lag(ID) then START=START_DATE;
  if ID = NEXT_ID then do;
    DIF_DATE  = END_DATE - START_DATE ;
    DIFF_NEXT = NEXT_DATE - END_DATE  ;
  end;
  if DIFF_NEXT &amp;gt; 20 or ID ne NEXT_ID then do;
    STAY=END_DATE-START;
    START=NEXT_DATE;
  end;                
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;&lt;BR /&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.DIF" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;ID&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;start_date&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;end_date&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;NEXT_ID&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;NEXT_DATE&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;START&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;DIF_DATE&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;DIFF_NEXT&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;STAY&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;01JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;10JAN2018&lt;/TD&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;11JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;01JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;11JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;31JAN2018&lt;/TD&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;05FEB2018&lt;/TD&gt;
&lt;TD class="r data"&gt;01JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;20&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;05FEB2018&lt;/TD&gt;
&lt;TD class="r data"&gt;15FEB2018&lt;/TD&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;19FEB2018&lt;/TD&gt;
&lt;TD class="r data"&gt;01JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;10&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;19FEB2018&lt;/TD&gt;
&lt;TD class="r data"&gt;30MAY2018&lt;/TD&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;15JUN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;01JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;100&lt;/TD&gt;
&lt;TD class="r data"&gt;16&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;15JUN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;30JUN2018&lt;/TD&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;05JUL2018&lt;/TD&gt;
&lt;TD class="r data"&gt;01JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;05JUL2018&lt;/TD&gt;
&lt;TD class="r data"&gt;20JUL2018&lt;/TD&gt;
&lt;TD class="l data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;05JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;05JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;200&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;05JAN2018&lt;/TD&gt;
&lt;TD class="r data"&gt;06JAN2018&lt;/TD&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;05FEB2018&lt;/TD&gt;
&lt;TD class="r data"&gt;05FEB2018&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;05FEB2018&lt;/TD&gt;
&lt;TD class="r data"&gt;15FEB2018&lt;/TD&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;20MAR2018&lt;/TD&gt;
&lt;TD class="r data"&gt;20MAR2018&lt;/TD&gt;
&lt;TD class="r data"&gt;10&lt;/TD&gt;
&lt;TD class="r data"&gt;33&lt;/TD&gt;
&lt;TD class="r data"&gt;10&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;20MAR2018&lt;/TD&gt;
&lt;TD class="r data"&gt;15APR2018&lt;/TD&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;20APR2018&lt;/TD&gt;
&lt;TD class="r data"&gt;20MAR2018&lt;/TD&gt;
&lt;TD class="r data"&gt;26&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;20APR2018&lt;/TD&gt;
&lt;TD class="r data"&gt;31JUL2018&lt;/TD&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;14AUG2018&lt;/TD&gt;
&lt;TD class="r data"&gt;20MAR2018&lt;/TD&gt;
&lt;TD class="r data"&gt;102&lt;/TD&gt;
&lt;TD class="r data"&gt;14&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;14AUG2018&lt;/TD&gt;
&lt;TD class="r data"&gt;10SEP2018&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;174&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&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;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2019 06:00:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576805#M163323</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-07-26T06:00:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate total stay with allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576808#M163326</link>
      <description>&lt;P&gt;Are you sure that 155 is the right result for third patient?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   if 0 then set work.have;
   total_stay = 0;

   do until (last.Id);
      set work.have;
      by Id;

      if first.Id then do;
         total_stay = end_date - start_date;
      end;
      else do;
         if (start_date - lastEnd) &amp;lt;= 20 then do;
            total_stay = total_stay + end_date - start_date;
         end;
      end;

      lastEnd = end_date;
   end;

   do until (last.Id);
      set work.have;
      by Id;
      output;
   end;

   drop lastEnd;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 Jul 2019 06:12:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576808#M163326</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2019-07-26T06:12:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate total stay with allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576913#M163375</link>
      <description>&lt;P&gt;Thanks &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/15475"&gt;@andreas_lds&lt;/a&gt;&amp;nbsp; yes the last one is correct. We are counting the last three rows (26+102+27).&lt;/P&gt;&lt;P&gt;I think this one is going to work. Going to apply it to the bigger dataset to check.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2019 14:27:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576913#M163375</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2019-07-26T14:27:32Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate total stay with allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576917#M163377</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp; Thank you!&lt;/P&gt;&lt;P&gt;The Total_stay coloum is adding the diff_date coloumn so for client 1 169 is 9+20+10+100+15+15+15. For client 3 the 155 is 26+102+27 for client 3 the should have been&amp;nbsp;10 because of the gap between the first discharge (2/15/2018) and the next admit 3/20/18 is 33 days.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2019 14:34:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/576917#M163377</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2019-07-26T14:34:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate total stay with allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/577005#M163424</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/15475"&gt;@andreas_lds&lt;/a&gt;&amp;nbsp; and &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp; Thank you to you both! I used a combination of what you both had suggested to get what I needed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I got and it worked for what I needed!&lt;/P&gt;&lt;P&gt;Thank you again&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;data diff;
merge have
HAVE(firstobs=2 keep=ID START_DATE end_date rename=(ID=nID START_DATE=nSTART_DATE end_date=nend_date));

diff_date=end_date-start_date;
 if ID=NID then do;
diff_btwn_date=nSTART_DATE-end_date;
end;

run;


proc sql;
Select a.*, b. total_stay
From diff a 
join  (Select distinct ID, Sum(diff_date) as total_stay
                                       From diff 
                                       Where diff_btwn_date&amp;lt;=20
                                        Group by ID) b
on a.id=b.id and a.diff_btwn_date&amp;lt;=20
Union
Select a.*, diff_date as total_stay
From diff a
Where a.diff_btwn_date&amp;gt;20
group By id, start_date;
quit;&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 Jul 2019 18:01:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-total-stay-with-allowable-gaps/m-p/577005#M163424</guid>
      <dc:creator>sas_student1</dc:creator>
      <dc:date>2019-07-26T18:01:50Z</dc:date>
    </item>
  </channel>
</rss>

