<?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: Span Months to Next Effective Date in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917087#M361247</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines truncover dlm=' ';
  input plan_eff_dt:mmddyy10. plan_term_dt:mmddyy10. ID INS_CD;
  format plan_eff_dt plan_term_dt date9.;
  datalines;
1/1/2022 12/30/2022 3761 513
8/1/2022 12/30/2022 3761 600
1/1/2023 12/30/2023 3761 600
7/1/2023 12/30/2023 3761 513
;
data want;
 merge have have(firstobs=2 keep=plan_eff_dt rename=(plan_eff_dt=_plan_eff_dt ));
 active_mbr_dt=plan_eff_dt;output;
 do i=1 to intck('month',plan_eff_dt,ifn(missing(_plan_eff_dt),intnx('month',plan_term_dt,1),_plan_eff_dt))-1;
   active_mbr_dt=intnx('month',plan_eff_dt,i);
   output;
 end;
 drop i _plan_eff_dt ;
 format active_mbr_dt mmddyy10.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 21 Feb 2024 05:35:34 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2024-02-21T05:35:34Z</dc:date>
    <item>
      <title>Span Months to Next Effective Date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917075#M361240</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; In need of help to record months for each effective date of eligibility until a change in their coverage.&amp;nbsp; So, I need to expand so that each month that they are in a specific insurance code, then they change the insurance code and span the months from when they changed their insurance code.&lt;/P&gt;
&lt;P&gt;This is the data that I have:&lt;/P&gt;
&lt;TABLE style="width: 471px;" width="471"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="87"&gt;plan_eff_dt&lt;/TD&gt;
&lt;TD width="105"&gt;plan_term_dt&lt;/TD&gt;
&lt;TD width="116"&gt;ID&lt;/TD&gt;
&lt;TD width="163"&gt;INS_CD&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The data that I want:&lt;/P&gt;
&lt;TABLE width="432"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="110"&gt;active_mbr_dt&lt;/TD&gt;
&lt;TD width="84"&gt;plan_eff_dt&lt;/TD&gt;
&lt;TD width="110"&gt;plan_term_dt&lt;/TD&gt;
&lt;TD width="64"&gt;ID&lt;/TD&gt;
&lt;TD width="64"&gt;INS_CD&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2/1/2022&lt;/TD&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3/1/2022&lt;/TD&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4/1/2022&lt;/TD&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5/1/2022&lt;/TD&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6/1/2022&lt;/TD&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7/1/2022&lt;/TD&gt;
&lt;TD&gt;1/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8/1/2022&lt;/TD&gt;
&lt;TD&gt;8/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9/1/2022&lt;/TD&gt;
&lt;TD&gt;8/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;10/1/2022&lt;/TD&gt;
&lt;TD&gt;8/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11/1/2022&lt;/TD&gt;
&lt;TD&gt;8/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;12/1/2022&lt;/TD&gt;
&lt;TD&gt;8/1/2022&lt;/TD&gt;
&lt;TD&gt;12/30/2022&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2/1/2023&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3/1/2023&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4/1/2023&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5/1/2023&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6/1/2023&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;600&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8/1/2023&lt;/TD&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9/1/2023&lt;/TD&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;10/1/2023&lt;/TD&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11/1/2023&lt;/TD&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;513&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;12/1/2023&lt;/TD&gt;
&lt;TD&gt;7/1/2023&lt;/TD&gt;
&lt;TD&gt;12/30/2023&lt;/TD&gt;
&lt;TD&gt;3761&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;513&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Wed, 21 Feb 2024 02:42:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917075#M361240</guid>
      <dc:creator>suncawy</dc:creator>
      <dc:date>2024-02-21T02:42:12Z</dc:date>
    </item>
    <item>
      <title>Re: Span Months to Next Effective Date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917078#M361243</link>
      <description>&lt;P&gt;Here one way how to go about this. Amended version now also with the logic to create rows until December of the year with the max date from source.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines truncover dlm=' ';
  input plan_eff_dt:mmddyy10. plan_term_dt:mmddyy10. ID INS_CD;
  format plan_eff_dt plan_term_dt date9.;
  datalines;
1/1/2022 12/30/2022 3761 513
8/1/2022 12/30/2022 3761 600
1/1/2023 12/30/2023 3761 600
7/1/2023 12/30/2023 3761 513
;

data want(drop=_:);
  set have;
  by id;
  output;

  if not last.id then
    do;
      _point=_n_+1;
      set have(keep=plan_eff_dt rename=(plan_eff_dt=_next_plan_eff_dt)) point=_point;

      plan_eff_dt=intnx('month',plan_eff_dt,1,'b');
      do while(plan_eff_dt&amp;lt;_next_plan_eff_dt);
        output;
        plan_eff_dt=intnx('month',plan_eff_dt,1,'b');
      end;
    end;
  else
  if last.id then
    do;
      /* create rows until December of max date in source */
      _stop_dt=intnx('year',plan_eff_dt,0,'e');
      plan_eff_dt=intnx('month',plan_eff_dt,1,'b');
      do while(plan_eff_dt&amp;lt;_stop_dt);
        output;
        plan_eff_dt=intnx('month',plan_eff_dt,1,'b');
      end;
    end;
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 21 Feb 2024 03:23:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917078#M361243</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-02-21T03:23:11Z</dc:date>
    </item>
    <item>
      <title>Re: Span Months to Next Effective Date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917087#M361247</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines truncover dlm=' ';
  input plan_eff_dt:mmddyy10. plan_term_dt:mmddyy10. ID INS_CD;
  format plan_eff_dt plan_term_dt date9.;
  datalines;
1/1/2022 12/30/2022 3761 513
8/1/2022 12/30/2022 3761 600
1/1/2023 12/30/2023 3761 600
7/1/2023 12/30/2023 3761 513
;
data want;
 merge have have(firstobs=2 keep=plan_eff_dt rename=(plan_eff_dt=_plan_eff_dt ));
 active_mbr_dt=plan_eff_dt;output;
 do i=1 to intck('month',plan_eff_dt,ifn(missing(_plan_eff_dt),intnx('month',plan_term_dt,1),_plan_eff_dt))-1;
   active_mbr_dt=intnx('month',plan_eff_dt,i);
   output;
 end;
 drop i _plan_eff_dt ;
 format active_mbr_dt mmddyy10.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 21 Feb 2024 05:35:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917087#M361247</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-02-21T05:35:34Z</dc:date>
    </item>
    <item>
      <title>Re: Span Months to Next Effective Date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917204#M361298</link>
      <description>Thank you, this works too !</description>
      <pubDate>Wed, 21 Feb 2024 18:13:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917204#M361298</guid>
      <dc:creator>suncawy</dc:creator>
      <dc:date>2024-02-21T18:13:55Z</dc:date>
    </item>
    <item>
      <title>Re: Span Months to Next Effective Date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917205#M361299</link>
      <description>This works, Thank you !</description>
      <pubDate>Wed, 21 Feb 2024 18:14:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Span-Months-to-Next-Effective-Date/m-p/917205#M361299</guid>
      <dc:creator>suncawy</dc:creator>
      <dc:date>2024-02-21T18:14:08Z</dc:date>
    </item>
  </channel>
</rss>

