<?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 Retain and if then else in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/299965#M63316</link>
    <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dataset with customers's insurance data and am trying to find out the coverage for the&amp;nbsp; year of 2011 based on the all the coverage transaction by end of year of 2011.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The data is like below. I alaready sorted by cust_id and the coverage_begin_dt descending.. Which means that the first row of each customer is the top of the stack of the transaction.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;EMPLID&lt;/TD&gt;&lt;TD&gt;COVERAGE_BEGIN_DT&lt;/TD&gt;&lt;TD&gt;PLAN&lt;/TD&gt;&lt;TD&gt;Election&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Aug2016&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Jan2010&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;23Jun2003&lt;/TD&gt;&lt;TD&gt;BM0004&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2222222&lt;/TD&gt;&lt;TD&gt;01Jun2009&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2222222&lt;/TD&gt;&lt;TD&gt;14Dec2008&lt;/TD&gt;&lt;TD&gt;BACP&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01Oct2012&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01May2011&lt;/TD&gt;&lt;TD&gt;BMR030&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01Apr2011&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;04Mar1997&lt;/TD&gt;&lt;TD&gt;BM0013&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Jan2014&lt;/TD&gt;&lt;TD&gt;BMF02H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Mar2011&lt;/TD&gt;&lt;TD&gt;BMF03H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Jan2010&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;03Dec1986&lt;/TD&gt;&lt;TD&gt;BM0004&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My goal is to get the following result:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;EMPLID&lt;/TD&gt;&lt;TD&gt;COVERAGE_BEGIN_DT&lt;/TD&gt;&lt;TD&gt;COVERAGE_END_DT&lt;/TD&gt;&lt;TD&gt;PLAN&lt;/TD&gt;&lt;TD&gt;Election&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2222222&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01May2011&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMR030&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;31Mar2011&lt;/TD&gt;&lt;TD&gt;BM0013&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;28Feb2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Mar2011&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMF03H&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know I might need to use Retain statement but I have been stuck here for days. &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can any one help me out with a simple solution?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot!&lt;/P&gt;</description>
    <pubDate>Wed, 21 Sep 2016 20:35:26 GMT</pubDate>
    <dc:creator>EEEY</dc:creator>
    <dc:date>2016-09-21T20:35:26Z</dc:date>
    <item>
      <title>Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/299965#M63316</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dataset with customers's insurance data and am trying to find out the coverage for the&amp;nbsp; year of 2011 based on the all the coverage transaction by end of year of 2011.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The data is like below. I alaready sorted by cust_id and the coverage_begin_dt descending.. Which means that the first row of each customer is the top of the stack of the transaction.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;EMPLID&lt;/TD&gt;&lt;TD&gt;COVERAGE_BEGIN_DT&lt;/TD&gt;&lt;TD&gt;PLAN&lt;/TD&gt;&lt;TD&gt;Election&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Aug2016&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Jan2010&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;23Jun2003&lt;/TD&gt;&lt;TD&gt;BM0004&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2222222&lt;/TD&gt;&lt;TD&gt;01Jun2009&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2222222&lt;/TD&gt;&lt;TD&gt;14Dec2008&lt;/TD&gt;&lt;TD&gt;BACP&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01Oct2012&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01May2011&lt;/TD&gt;&lt;TD&gt;BMR030&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01Apr2011&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;04Mar1997&lt;/TD&gt;&lt;TD&gt;BM0013&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Jan2014&lt;/TD&gt;&lt;TD&gt;BMF02H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Mar2011&lt;/TD&gt;&lt;TD&gt;BMF03H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Jan2010&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;03Dec1986&lt;/TD&gt;&lt;TD&gt;BM0004&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My goal is to get the following result:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;EMPLID&lt;/TD&gt;&lt;TD&gt;COVERAGE_BEGIN_DT&lt;/TD&gt;&lt;TD&gt;COVERAGE_END_DT&lt;/TD&gt;&lt;TD&gt;PLAN&lt;/TD&gt;&lt;TD&gt;Election&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1111111&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2222222&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01May2011&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMR030&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3333333&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;31Mar2011&lt;/TD&gt;&lt;TD&gt;BM0013&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;28Feb2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4444444&lt;/TD&gt;&lt;TD&gt;01Mar2011&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMF03H&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know I might need to use Retain statement but I have been stuck here for days. &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can any one help me out with a simple solution?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot!&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 20:35:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/299965#M63316</guid>
      <dc:creator>EEEY</dc:creator>
      <dc:date>2016-09-21T20:35:26Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/299977#M63317</link>
      <description>&lt;P&gt;I'm not sure there will be a "simple" solution but I don't see it as impossible.&lt;/P&gt;
&lt;P&gt;However there are a few points that you will need to expand on the logic involved.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You probably want to sort by the begin date not descending as it is much easier to "look behind", previous records or from bottom to one above, than the other way around.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First it appears that all EMPID have to appear even if there is no 2011 data. Is that correct?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Second for EMPID 33333 it appears that there is an assumption the plan information from 1997 is assumed to be in effect until before the begining of April 2011 and so the information for Jan to Mar of 2011 is inserted. Is that correct?&lt;/P&gt;
&lt;P&gt;Is there a reason that the order of the results for EMPID 44444 is different than for 33333? The insertion looks to be similar but the order is different. Does the actual order matter or can a Sort be done as needed?&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>Wed, 21 Sep 2016 21:09:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/299977#M63317</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-09-21T21:09:34Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/299984#M63321</link>
      <description>&lt;P&gt;Thanks Ballardw,&lt;/P&gt;&lt;P&gt;I guess this would not a simple solution as I am stuck on this for days.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regarding your questions:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You probably want to sort by the begin date not descending as it is much easier to "look behind", previous records or from bottom to one above, than the other way around. &lt;FONT color="#3366FF"&gt;&lt;EM&gt;-- You are right. As I need to get the earlier Coverage_begin_dt for each Plan. So should be sorting ascending instead of descending.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First it appears that all EMPID have to appear even if there is no 2011 data. Is that correct? - &lt;FONT color="#3366FF"&gt;&lt;EM&gt;Yes.. Its correct. I removed the transactions after 2011 as I only need to provide the report for the year of 2011. If there is no transactions after the last row, means there was no coverage changes occurred by the 2011 year end.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Second for EMPID 33333 it appears that there is an assumption the plan information from 1997 is assumed to be in effect until before the begining of April 2011 and so the information for Jan to Mar of 2011 is inserted. Is that correct? - &lt;EM&gt;&lt;FONT color="#3366FF"&gt;thats is the data look like. Again, since I only need to report for 2011, if there is no change between 1997-1/1/2011, I will just need to insert a row with coverage begin/end dt as 1/1/2011 and 12/31/2011. The plan for this newly inserted row should be the PLan from 1997.&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;FONT color="#3366FF"&gt;I was thinking that due to the complexity of this assignment, may be using Retain to get the Coverage_begin_dt carried over from the previous row to current row first, then think about the 2011 cutt off secondly.&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there a reason that the order of the results for EMPID 44444 is different than for 33333? The insertion looks to be similar but the order is different. Does the actual order matter or can a Sort be done as needed? - &lt;FONT color="#3366FF"&gt;&lt;EM&gt;the final order of the result does not matter.&lt;/EM&gt; &lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 21:37:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/299984#M63321</guid>
      <dc:creator>EEEY</dc:creator>
      <dc:date>2016-09-21T21:37:03Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300000#M63324</link>
      <description>&lt;P&gt;Here's one approach. I won't make any claim about being the slickest. There may be an issue about the Election.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   informat EMPLID $5.  COVERAGE_BEGIN_DT date9.   PLAN $7. Election $10.;
   format COVERAGE_BEGIN_DT date9.;
   input EMPLID COVERAGE_BEGIN_DT PLAN Election ;
datalines;
1111111 01Aug2016 T Terminated 
1111111 01Jan2011 BMF01H Elected 
1111111 01Jan2010 BMF01H Elected 
1111111 23Jun2003 BM0004 Elected 
2222222 01Jun2009 T Terminated 
2222222 14Dec2008 BACP Elected 
3333333 01Oct2012 T Terminated 
3333333 01May2011 BMR030 Elected 
3333333 01Apr2011 T Terminated 
3333333 04Mar1997 BM0013 Elected 
4444444 01Jan2014 BMF02H Elected 
4444444 01Mar2011 BMF03H Elected 
4444444 01Jan2010 BMF01H Elected 
4444444 03Dec1986 BM0004 Elected 
;
run;

proc sort data= have;
   by EMPLID COVERAGE_BEGIN_DT;
run;

data want;
   set have;
   by emplid;
   LagDt = lag(COVERAGE_BEGIN_DT);
   LagPlan= lag(plan);
   retain outputflag;
   If first.emplid then do;
      /* lagged values inappropriate to use*/
      call missing(LagDt, LagPlan);
      outputflag=0;
   end;
   If year(COVERAGE_BEGIN_DT) = 2011 then do;
      /* since order of output does not matter first output
         to end of year from current*/
      if plan ne 'T' then do;
         /* could set to fixed date but this is how to set to end of year*/
         COVERAGE_END_DT = intnx('year',COVERAGE_BEGIN_DT,0,'E');
         Election='Elected';
         output;
         outputflag=1;
      end;
      /* then use the previous data if available*/
      If Month( COVERAGE_BEGIN_DT)&amp;gt;1 and not missing(LagDt) and LagPlan ne 'T' then do;
         /* Set end day before start, may want to set the end of the month prior
            using intnx('month',COVERAGE_BEGIN_DT,-1,'E')*/
         COVERAGE_END_DT= COVERAGE_BEGIN_DT-1;
         COVERAGE_BEGIN_DT=intnx('year',COVERAGE_BEGIN_DT,0,'B');
         Plan=LagPlan;
         Election='Elected';

         output;
         outputflag=1;

      end;
   end;/* of specified year*/
   if last.emplid and outputflag=0 then do;
      call missing(COVERAGE_END_DT,COVERAGE_BEGIN_DT,Plan);
      output;
   end;
   format COVERAGE_END_DT date9.;
   drop LagDt LagPlan outputflag;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 21 Sep 2016 23:16:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300000#M63324</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-09-21T23:16:48Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300020#M63327</link>
      <description>&lt;PRE&gt;
Assuming there are at most two obs of year 2011 for each EMPLID.



data have;
   informat EMPLID $5.  COVERAGE_BEGIN_DT date9.   PLAN $7. Election $10.;
   format COVERAGE_BEGIN_DT date9.;
   input EMPLID COVERAGE_BEGIN_DT PLAN Election ;
datalines;
1111111 01Aug2016 T Terminated 
1111111 01Jan2011 BMF01H Elected 
1111111 01Jan2010 BMF01H Elected 
1111111 23Jun2003 BM0004 Elected 
2222222 01Jun2009 T Terminated 
2222222 14Dec2008 BACP Elected 
3333333 01Oct2012 T Terminated 
3333333 01May2011 BMR030 Elected 
3333333 01Apr2011 T Terminated 
3333333 04Mar1997 BM0013 Elected 
4444444 01Jan2014 BMF02H Elected 
4444444 01Mar2011 BMF03H Elected 
4444444 01Jan2010 BMF01H Elected 
4444444 03Dec1986 BM0004 Elected 
;
run;
data temp;
 set have(where=(year(COVERAGE_BEGIN_DT)=2011));
 by EMPLID;
 retain found;
 lag=lag(COVERAGE_BEGIN_DT);
 if first.EMPLID then do;
  found=.;
  if COVERAGE_BEGIN_DT = '01jan2011'd then found=1;
  COVERAGE_END_DT=intnx('year',COVERAGE_BEGIN_DT,0,'e');
  output;
end;


if last.EMPLID then do;
if not found then do;
	if year(COVERAGE_BEGIN_DT)=2011 then temp=COVERAGE_BEGIN_DT;
	 else temp=lag;
	COVERAGE_BEGIN_DT='01jan2011'd;
    COVERAGE_END_DT=temp-1;output;
   end;
end;
 format COVERAGE_END_DT	date9.;
 drop found lag temp;
run;
proc sql;
create table x as
 select EMPLID , Election
  from have 
   where EMPLID not in (select distinct EMPLID from temp);
quit;
data xx;
 set x;
 by EMPLID;
 if first.EMPLID;
run;
data want;
 set temp xx;
 by EMPLID;
run;



&lt;/PRE&gt;</description>
      <pubDate>Thu, 22 Sep 2016 01:54:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300020#M63327</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-09-22T01:54:57Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300029#M63328</link>
      <description>&lt;P&gt;Thanks for your input. It works as well as the solution from Ballrdw for my dataset. But there are few scenarios did not work:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. there is few customers with only one observation.&lt;/P&gt;&lt;P&gt;2. in the following case,&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;EMPLID&lt;/TD&gt;&lt;TD&gt;COVERAGE_ELECT&lt;/TD&gt;&lt;TD&gt;COVERAGE_BEGIN_DT&lt;/TD&gt;&lt;TD&gt;PLAN&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;555555&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;01Jan1964&lt;/TD&gt;&lt;TD&gt;BM0016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;555555&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;01Dec2008&lt;/TD&gt;&lt;TD&gt;BMR039&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;555555&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;TD&gt;01Jan2015&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;666666&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;01Jan2004&lt;/TD&gt;&lt;TD&gt;BMR039&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;666666&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;TD&gt;01Jan2015&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;The result I'd like to see would be:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;EMPLID&lt;/TD&gt;&lt;TD&gt;COVERAGE_ELECT&lt;/TD&gt;&lt;TD&gt;COVERAGE_BEGIN_DT&lt;/TD&gt;&lt;TD&gt;PLAN&lt;/TD&gt;&lt;TD&gt;COVERAGE_END_DT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;555555&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;BMR039&lt;/TD&gt;&lt;TD&gt;12/31/2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;666666&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;BMR039&lt;/TD&gt;&lt;TD&gt;12/31/2011&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But the current program gives me empty row due to the Termination Row.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Sep 2016 04:24:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300029#M63328</guid>
      <dc:creator>EEEY</dc:creator>
      <dc:date>2016-09-22T04:24:46Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300047#M63334</link>
      <description>&lt;PRE&gt;
Why PLAN is BMR039, not BM0016 ?
And how you explain the blank of 22222 in original data ?

&lt;/PRE&gt;</description>
      <pubDate>Thu, 22 Sep 2016 07:55:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300047#M63334</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-09-22T07:55:54Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300130#M63365</link>
      <description>&lt;P&gt;I thought of that later. The issue is mainly that you did not SPECIFY all of the cases in your original data or the description. Such as if the data year is past the specfied year and the previous record for a year prior to the specified year has ELECTED then you need to interpolate the values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Insert this code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  If year(COVERAGE_BEGIN_DT) &amp;gt; 2011 And Year(LagDT)&amp;lt; 2011 and LagPlan ne 'T' then do;
      /* interpolate between*/
      Plan=LagPlan;
      COVERAGE_END_DT   = '31DEC2011'd;
      COVERAGE_BEGIN_DT = '01JAN2011'd;
      Election='Elected';
      OutFlag=1;

   end;/* of interpolate year*/
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;BEFORE the If last.emplid block.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Sep 2016 15:01:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300130#M63365</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-09-22T15:01:27Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300196#M63384</link>
      <description>&lt;P&gt;We have multiple plans available for employees.&lt;/P&gt;</description>
      <pubDate>Thu, 22 Sep 2016 19:40:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300196#M63384</guid>
      <dc:creator>EEEY</dc:creator>
      <dc:date>2016-09-22T19:40:50Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300256#M63396</link>
      <description>&lt;PRE&gt;
No. I mean which obs I should retaiin.
And why 2222 in your original post have missing value, not like this new one .

&lt;/PRE&gt;</description>
      <pubDate>Fri, 23 Sep 2016 01:48:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300256#M63396</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-09-23T01:48:01Z</dc:date>
    </item>
    <item>
      <title>Re: Retain and if then else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300554#M63482</link>
      <description>&lt;P&gt;Thanks Ballardw so much for your idea! I have modified a bit the code you sent. The complete the code I used is as below. I added one scenario with emplid 2222111.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; informat EMPLID $5.&amp;nbsp; COVERAGE_BEGIN_DT date9.&amp;nbsp;&amp;nbsp; PLAN $7. Election $10.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; format COVERAGE_BEGIN_DT date9.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; input EMPLID COVERAGE_BEGIN_DT PLAN Election ;&lt;BR /&gt;datalines;&lt;BR /&gt;1111111 01Aug2016 T Terminated&lt;BR /&gt;1111111 01Jan2011 BMF01H Elected&lt;BR /&gt;1111111 01Jan2010 BMF01H Elected&lt;BR /&gt;1111111 23Jun2003 BM0004 Elected&lt;BR /&gt;2222222 01Jun2009 T Terminated&lt;BR /&gt;2222222 14Dec2008 BACP Elected&lt;BR /&gt;3333333 01Oct2012 T Terminated&lt;BR /&gt;3333333 01May2011 BMR030 Elected&lt;BR /&gt;3333333 01Apr2011 T Terminated&lt;BR /&gt;3333333 04Mar1997 BM0013 Elected&lt;BR /&gt;4444444 01Jan2014 BMF02H Elected&lt;BR /&gt;4444444 01Mar2011 BMF03H Elected&lt;BR /&gt;4444444 01Jan2010 BMF01H Elected&lt;BR /&gt;4444444 03Dec1986 BM0004 Elected&lt;BR /&gt;5555555 01Jan1964 BMF02H Elected&lt;BR /&gt;5555555 01Dec2008 BMR039 Elected&lt;BR /&gt;5555555 01Jan2015 T Terminated&lt;BR /&gt;6666666 01Jan2004 BMR039 Elected&lt;BR /&gt;6666666 01Jan2015 T Terminated&lt;BR /&gt;6666666 01Jan2004 BMR039 Elected&lt;BR /&gt;6666666 01Jan2015 T Terminated&lt;BR /&gt;2222111 18Dec2006 BACP Elected&lt;BR /&gt;2222111 13Aug2005 BACP Elected&lt;BR /&gt;2222111 25Dec2011 BACP Elected&lt;BR /&gt;2222111 01Jul2014 BACP Elected&lt;BR /&gt;;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data= have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by EMPLID COVERAGE_BEGIN_DT;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by emplid;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LagDt = lag(COVERAGE_BEGIN_DT);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Lagplan=lag(plan);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; retain outputflag;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If first.emplid then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* lagged values inappropriate to use*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(LagDt, Lagplan);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outputflag=0;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If year(COVERAGE_BEGIN_DT) in (2011) then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* since order of output does not matter first output&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to end of year from current*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if plan ne 'T' then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* could set to fixed date but this is how to set to end of year*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COVERAGE_END_DT = intnx('year',COVERAGE_BEGIN_DT,0,'E');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Election='Elected';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outputflag=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* then use the previous data if available*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Month(COVERAGE_BEGIN_DT)&amp;gt;1 and not missing(LagDt) and Lagplan ne 'T' then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set end day before start, may want to set the end of the month prior&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using intnx('month',COVERAGE_BEGIN_DT,-1,'E')*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COVERAGE_END_DT= COVERAGE_BEGIN_DT-1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COVERAGE_BEGIN_DT=intnx('year',COVERAGE_BEGIN_DT,0,'B');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; plan=Lagplan;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Election='Elected';&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outputflag=1;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;/* of specified year*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If year(COVERAGE_BEGIN_DT) &amp;gt; 2011 And Year(LagDT)&amp;lt; 2011 and Lagplan ne 'T' then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* interpolate between*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; plan=Lagplan;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COVERAGE_END_DT&amp;nbsp;&amp;nbsp; = '01Jan2011'd;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COVERAGE_BEGIN_DT = '31Dec2011'd;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Election='Elected';&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outputflag=1;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;/* of interpolate year*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if last.emplid and outputflag=0 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(COVERAGE_END_DT,COVERAGE_BEGIN_DT,plan);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; format COVERAGE_END_DT date9.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; drop LagDt Lagplan outputflag;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data=want;by emplid coverage_begin_dt ;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The result I got:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;EMPLID&lt;/TD&gt;&lt;TD&gt;COVERAGE_BEGIN_DT&lt;/TD&gt;&lt;TD&gt;PLAN&lt;/TD&gt;&lt;TD&gt;Election&lt;/TD&gt;&lt;TD&gt;COVERAGE_END_DT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11111&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;22221&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;01Jan2011&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;BACP&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;Elected&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;24Dec2011&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;22221&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;25Dec2011&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;BACP&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;Elected&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;31Dec2011&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Terminated&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;33333&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;BM0013&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;31Mar2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;33333&lt;/TD&gt;&lt;TD&gt;01May2011&lt;/TD&gt;&lt;TD&gt;BMR030&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;44444&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;TD&gt;BMF01H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;28Feb2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;44444&lt;/TD&gt;&lt;TD&gt;01Mar2011&lt;/TD&gt;&lt;TD&gt;BMF03H&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;55555&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;Elected&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;55555&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMR039&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;66666&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;Terminated&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRIKE&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRIKE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;66666&lt;/TD&gt;&lt;TD&gt;31Dec2011&lt;/TD&gt;&lt;TD&gt;BMR039&lt;/TD&gt;&lt;TD&gt;Elected&lt;/TD&gt;&lt;TD&gt;01Jan2011&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem is that I expected the result for 222211 would be 1/1/2011 -12/31/2011. The reason is that, the Plan did not change from observation to observation. I think I need to compare the plan with Lagplan as well. &amp;nbsp;I tried to add this comparison to the program, but it did not work. &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&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;Thanks a lot!&lt;/P&gt;</description>
      <pubDate>Sun, 25 Sep 2016 18:12:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-and-if-then-else/m-p/300554#M63482</guid>
      <dc:creator>EEEY</dc:creator>
      <dc:date>2016-09-25T18:12:31Z</dc:date>
    </item>
  </channel>
</rss>

