<?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: Counting and limiting dates in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/617312#M180870</link>
    <description>&lt;P&gt;Try something like this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
Member_ID='0001';	Discharge_Date='05JAN2019'd;	Diagnosis=428;	Service_Date='08JAN2019'd;	Diagnosis2=428; output;
Member_ID='0001';	Discharge_Date='28FEB2019'd;	Diagnosis=123;	Service_Date='04MAR2019'd;	Diagnosis2=922; output;
Member_ID='0001';	Discharge_Date='11JUN2019'd;	Diagnosis=410;	Service_Date=.;             Diagnosis2=.;	 output;
Member_ID='0002';	Discharge_Date='02AUG2019'd;	Diagnosis=238;	Service_Date='29AUG2019'd;	Diagnosis2=238; output;
Member_ID='0002';	Discharge_Date='01SEP2019'd;	Diagnosis=210;	Service_Date=.;             Diagnosis2=.;	 output;
Member_ID='0002';	Discharge_Date='04NOV2019'd;	Diagnosis=308;	Service_Date='12DEC2019'd;	Diagnosis2=242; output;
Member_ID='0003';	Discharge_Date='20DEC2019'd;	Diagnosis=105;	Service_Date='22DEC2019'd;	Diagnosis2=105; output;
Member_ID='0004';	Discharge_Date='01MAR2019'd;	Diagnosis=124;	Service_Date='04APR2019'd;	Diagnosis2=124; output;
Member_ID='0005';	Discharge_Date='30APR2019'd;	Diagnosis=185;	Service_Date='09MAY2019'd;	Diagnosis2=252; output;
format Discharge_Date date9. Service_Date date9.; 
run;

data lookup;
length Flag $8.;
Fstart = 1; Fend=7; Flag='1-7'; output;
Fstart = 1; Fend=30; Flag='1-30'; output;
run;

proc sql;
create table want as 
select
t1.*,
(t1.Service_Date - t1.Discharge_Date) as Day_Count,
case when (t1.Service_Date - t1.Discharge_Date) &amp;lt;= 30 then t2.Flag else 'na' end as Flag
from have t1
    left join lookup t2 on ( Fstart &amp;lt;= (t1.Service_Date - t1.Discharge_Date) &amp;lt;= Fend)
where Service_Date ne . 
having Diagnosis = Diagnosis2 and Diagnosis2 ne .
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 14 Jan 2020 20:43:45 GMT</pubDate>
    <dc:creator>JeffMaggio</dc:creator>
    <dc:date>2020-01-14T20:43:45Z</dc:date>
    <item>
      <title>Counting and limiting dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/616459#M180477</link>
      <description>&lt;P&gt;So I have been thinking about this issue for a little bit and I am scratching my head at the best way to approach this issue.&amp;nbsp; I have 3 fields, I have Member, Discharge_DT and Service_DT.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to determine which service dates fall between 1 - 7 days between the Discharge_DT and Service_DT also&lt;/P&gt;&lt;P&gt;I am trying to determine which service dates fall between 1 - 30 days between the Discharge_DT and Service_DT.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was thinking something along the lines of&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC SQL;

create table work.test as

select distinct

MEMBER,

DISCHARGE_DT,

(SERVICE_DT - DISCHARGE_DT) as days



from work.table

group by 1,2;

quit;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;But I am not 100% on the syntax and I want to make sure I am grabbing everything based on the Discharge and not omitting anything.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jan 2020 13:39:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/616459#M180477</guid>
      <dc:creator>GregorClegane</dc:creator>
      <dc:date>2020-01-10T13:39:45Z</dc:date>
    </item>
    <item>
      <title>Re: Counting and limiting dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/616501#M180495</link>
      <description>&lt;P&gt;How are the dates formatted?&lt;/P&gt;&lt;P&gt;If they are not dates, you'll have to use a conversion first.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, I don't know your data, but are you sure you don't want&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="sas"&gt;&amp;lt;span class="token punctuation"&amp;gt;(DISCHARGE_DT - &amp;lt;/span&amp;gt;SERVICE_DT&amp;lt;span class="token punctuation"&amp;gt;)&amp;lt;/span&amp;gt; as days&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;instead? Is this some kind of length of stay for health data?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you simply want to check / filter results. You could use something like:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;where &lt;CODE class="  language-sas"&gt;&lt;SPAN class="token punctuation"&gt;DISCHARGE_DT &amp;lt;= &lt;/SPAN&gt;&lt;/CODE&gt;SERVICE_DT&amp;nbsp;+&amp;nbsp;7&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You don't have any summary columns in your example, so you would not want to include a group by clause.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jan 2020 15:12:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/616501#M180495</guid>
      <dc:creator>JeffMaggio</dc:creator>
      <dc:date>2020-01-10T15:12:14Z</dc:date>
    </item>
    <item>
      <title>Re: Counting and limiting dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/616528#M180502</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/180206"&gt;@JeffMaggio&lt;/a&gt;&amp;nbsp; Thank you, I am playing around with your code now to see what it looks like.&amp;nbsp; The dates are just in a date9. type format.&amp;nbsp; I was also reading up on the SAS Lag function, but I still haven't gotten my mind around that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the start, I will respond with good/bad news!&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jan 2020 16:19:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/616528#M180502</guid>
      <dc:creator>GregorClegane</dc:creator>
      <dc:date>2020-01-10T16:19:26Z</dc:date>
    </item>
    <item>
      <title>Re: Counting and limiting dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/617218#M180816</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/180206"&gt;@JeffMaggio&lt;/a&gt;&amp;nbsp;I have been trying your logic you suggested and I still can't seem to wrap my head around how to make it work.&amp;nbsp; Here is a sample of my data, along with what I am expecting, I hope this clarifies some questions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Member_ID&lt;/TD&gt;&lt;TD&gt;Discharge_Date&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;TD&gt;Service_Date&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;05JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;TD&gt;08JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;28FEB2019&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;04MAR2019&lt;/TD&gt;&lt;TD&gt;922&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;11JUN2019&lt;/TD&gt;&lt;TD&gt;410&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;02AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;TD&gt;29AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;01SEP2019&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;04NOV2019&lt;/TD&gt;&lt;TD&gt;308&lt;/TD&gt;&lt;TD&gt;12DEC2019&lt;/TD&gt;&lt;TD&gt;242&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;20DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;22DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0004&lt;/TD&gt;&lt;TD&gt;01MAR2019&lt;/TD&gt;&lt;TD&gt;124&lt;/TD&gt;&lt;TD&gt;04APR2019&lt;/TD&gt;&lt;TD&gt;124&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0005&lt;/TD&gt;&lt;TD&gt;30APR2019&lt;/TD&gt;&lt;TD&gt;185&lt;/TD&gt;&lt;TD&gt;09MAY2019&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;252&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So in this example I am looking to count the number of days between the discharge date and new service date.&amp;nbsp; However the following needs to match.&amp;nbsp; The member id needs to match along with the diagnosis code.&amp;nbsp; So I would want to end up with something like the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Member_ID&lt;/TD&gt;&lt;TD&gt;Discharge_Date&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;TD&gt;Service_Date&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;TD&gt;Day Count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;05JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;TD&gt;08JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;02AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;TD&gt;29AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;TD&gt;27&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;20DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;22DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0004&lt;/TD&gt;&lt;TD&gt;01MAR2019&lt;/TD&gt;&lt;TD&gt;124&lt;/TD&gt;&lt;TD&gt;04APR2019&lt;/TD&gt;&lt;TD&gt;124&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;34&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Once I have that Day Count field I can start to build my flags.&amp;nbsp;&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;Member_ID&lt;/TD&gt;&lt;TD&gt;Discharge_Date&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;TD&gt;Service_Date&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;TD&gt;Day Count&lt;/TD&gt;&lt;TD&gt;Flag&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;05JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;TD&gt;08JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1-7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;05JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;TD&gt;08JAN2019&lt;/TD&gt;&lt;TD&gt;428&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;02AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;TD&gt;29AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;TD&gt;27&lt;/TD&gt;&lt;TD&gt;1-7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;02AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;TD&gt;29AUG2019&lt;/TD&gt;&lt;TD&gt;238&lt;/TD&gt;&lt;TD&gt;27&lt;/TD&gt;&lt;TD&gt;1-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;20DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;22DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1-7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;20DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;22DEC2019&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0004&lt;/TD&gt;&lt;TD&gt;01MAR2019&lt;/TD&gt;&lt;TD&gt;124&lt;/TD&gt;&lt;TD&gt;04APR2019&lt;/TD&gt;&lt;TD&gt;124&lt;/TD&gt;&lt;TD&gt;34&lt;/TD&gt;&lt;TD&gt;na&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;So with each flag, it will duplicate the data since the members should fall into each bucket.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you again!&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jan 2020 15:38:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/617218#M180816</guid>
      <dc:creator>GregorClegane</dc:creator>
      <dc:date>2020-01-14T15:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: Counting and limiting dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/617312#M180870</link>
      <description>&lt;P&gt;Try something like this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
Member_ID='0001';	Discharge_Date='05JAN2019'd;	Diagnosis=428;	Service_Date='08JAN2019'd;	Diagnosis2=428; output;
Member_ID='0001';	Discharge_Date='28FEB2019'd;	Diagnosis=123;	Service_Date='04MAR2019'd;	Diagnosis2=922; output;
Member_ID='0001';	Discharge_Date='11JUN2019'd;	Diagnosis=410;	Service_Date=.;             Diagnosis2=.;	 output;
Member_ID='0002';	Discharge_Date='02AUG2019'd;	Diagnosis=238;	Service_Date='29AUG2019'd;	Diagnosis2=238; output;
Member_ID='0002';	Discharge_Date='01SEP2019'd;	Diagnosis=210;	Service_Date=.;             Diagnosis2=.;	 output;
Member_ID='0002';	Discharge_Date='04NOV2019'd;	Diagnosis=308;	Service_Date='12DEC2019'd;	Diagnosis2=242; output;
Member_ID='0003';	Discharge_Date='20DEC2019'd;	Diagnosis=105;	Service_Date='22DEC2019'd;	Diagnosis2=105; output;
Member_ID='0004';	Discharge_Date='01MAR2019'd;	Diagnosis=124;	Service_Date='04APR2019'd;	Diagnosis2=124; output;
Member_ID='0005';	Discharge_Date='30APR2019'd;	Diagnosis=185;	Service_Date='09MAY2019'd;	Diagnosis2=252; output;
format Discharge_Date date9. Service_Date date9.; 
run;

data lookup;
length Flag $8.;
Fstart = 1; Fend=7; Flag='1-7'; output;
Fstart = 1; Fend=30; Flag='1-30'; output;
run;

proc sql;
create table want as 
select
t1.*,
(t1.Service_Date - t1.Discharge_Date) as Day_Count,
case when (t1.Service_Date - t1.Discharge_Date) &amp;lt;= 30 then t2.Flag else 'na' end as Flag
from have t1
    left join lookup t2 on ( Fstart &amp;lt;= (t1.Service_Date - t1.Discharge_Date) &amp;lt;= Fend)
where Service_Date ne . 
having Diagnosis = Diagnosis2 and Diagnosis2 ne .
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 14 Jan 2020 20:43:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-and-limiting-dates/m-p/617312#M180870</guid>
      <dc:creator>JeffMaggio</dc:creator>
      <dc:date>2020-01-14T20:43:45Z</dc:date>
    </item>
  </channel>
</rss>

