<?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 date ranges and collapse costs based on ranges in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581431#M13679</link>
    <description>Hi Andreas,&lt;BR /&gt;Thank you for taking time to reply. Sorry for not providing enough information. The sequence of transformation starts with calculating the interval_start and Interval_end from the flag date with 30 day interval and then if the the startdate is within this interval then those costs are accumulated in that want table row.</description>
    <pubDate>Thu, 15 Aug 2019 14:54:58 GMT</pubDate>
    <dc:creator>shasank</dc:creator>
    <dc:date>2019-08-15T14:54:58Z</dc:date>
    <item>
      <title>How to calculate date ranges and collapse costs based on ranges</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581293#M13650</link>
      <description>&lt;P&gt;Hi SAS Community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need your help with a problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Have&lt;/STRONG&gt;&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;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Flagdate&lt;/TD&gt;&lt;TD&gt;Startdate&lt;/TD&gt;&lt;TD&gt;Cost&lt;/TD&gt;&lt;/TR&gt;&lt;TR&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;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;18-Jul-13&lt;/TD&gt;&lt;TD&gt;1307.77&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;18-Jul-13&lt;/TD&gt;&lt;TD&gt;96.6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;21-Jul-13&lt;/TD&gt;&lt;TD&gt;55.74&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;22-Jul-13&lt;/TD&gt;&lt;TD&gt;169.86&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;22-Jul-13&lt;/TD&gt;&lt;TD&gt;58.16&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;22-Jul-13&lt;/TD&gt;&lt;TD&gt;30.51&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;28-Aug-13&lt;/TD&gt;&lt;TD&gt;34.93&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;30-Aug-13&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;30-Aug-13&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;5-Sep-13&lt;/TD&gt;&lt;TD&gt;34.93&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;20-Sep-13&lt;/TD&gt;&lt;TD&gt;3.34&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;23-Sep-13&lt;/TD&gt;&lt;TD&gt;83.48&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;134&lt;/TD&gt;&lt;TD&gt;18-Jul-13&lt;/TD&gt;&lt;TD&gt;21-Oct-13&lt;/TD&gt;&lt;TD&gt;13.11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;135&lt;/TD&gt;&lt;TD&gt;19-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;136&lt;/TD&gt;&lt;TD&gt;20-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;11.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;137&lt;/TD&gt;&lt;TD&gt;21-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;10.48&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;138&lt;/TD&gt;&lt;TD&gt;22-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;217.07&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;139&lt;/TD&gt;&lt;TD&gt;23-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;83.48&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;24-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;141&lt;/TD&gt;&lt;TD&gt;25-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;49.59&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;142&lt;/TD&gt;&lt;TD&gt;26-Jul-13&lt;/TD&gt;&lt;TD&gt;25-Oct-13&lt;/TD&gt;&lt;TD&gt;63.2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;143&lt;/TD&gt;&lt;TD&gt;27-Jul-13&lt;/TD&gt;&lt;TD&gt;27-Oct-13&lt;/TD&gt;&lt;TD&gt;20.18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;144&lt;/TD&gt;&lt;TD&gt;28-Jul-13&lt;/TD&gt;&lt;TD&gt;4-Nov-13&lt;/TD&gt;&lt;TD&gt;11.49&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;145&lt;/TD&gt;&lt;TD&gt;29-Jul-13&lt;/TD&gt;&lt;TD&gt;7-Nov-13&lt;/TD&gt;&lt;TD&gt;29.45&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 I need to solve is to compress the above to accumulate the costs for 30 day intervals by ID.&lt;/P&gt;&lt;P&gt;In other words, for first row Intervel_start&amp;nbsp; = Flag_date or and Intervel_end = Interval_start + 30.&lt;/P&gt;&lt;P&gt;For the second row, Interval_start = Previous row Interval_end + 1 and Interval_end = Interval_start+30 and so on for all rows. Once this is done the startdate and cost within these interval ranges need to be accumulated per each range for each ID.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is the mock output for the above data-set. I have tried using lag function to get the ranges but seems to not work.&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;Want&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;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Flagdate&lt;/TD&gt;&lt;TD&gt;Intervel_Start&lt;/TD&gt;&lt;TD&gt;Intervel_End&lt;/TD&gt;&lt;TD&gt;Cum_Cost&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;16-Aug-13&lt;/TD&gt;&lt;TD&gt;1718.64&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;17-Aug-13&lt;/TD&gt;&lt;TD&gt;16-Sep-13&lt;/TD&gt;&lt;TD&gt;69.86&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;17-Sep-13&lt;/TD&gt;&lt;TD&gt;17-Oct-13&lt;/TD&gt;&lt;TD&gt;86.82&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;17-Jul-13&lt;/TD&gt;&lt;TD&gt;18-Oct-13&lt;/TD&gt;&lt;TD&gt;17-Nov-13&lt;/TD&gt;&lt;TD&gt;509.55&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;Thank you for your time and help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best,&lt;/P&gt;&lt;P&gt;SC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Aug 2019 21:29:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581293#M13650</guid>
      <dc:creator>shasank</dc:creator>
      <dc:date>2019-08-14T21:29:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate date ranges and collapse costs based on ranges</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581338#M13658</link>
      <description>&lt;P&gt;You could do this with SQL, using SAS date interval functions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
select 
    id,
    flagDate,
    intnx("month", flagDate, 
        intck("month", flagDate, startDate, "continuous"), "same") 
        as intervalStart format=yymmdd10.,    
    intnx("month", flagDate, 
        intck("month", flagDate, startDate, "continuous")+1, "same")-1 
        as intervalEnd format=yymmdd10.,
    sum(cost) as totalCost
from have
group by id, flagDate, calculated intervalStart, calculated intervalEnd;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 15 Aug 2019 03:22:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581338#M13658</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-08-15T03:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate date ranges and collapse costs based on ranges</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581347#M13662</link>
      <description>&lt;P&gt;Please post data in usable form, after more than 50 posts you should know that tables provide no information about the data-types you have.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After you did that, please explain the fourth row in your output-table. The data you showed in that row is not in your have-table.&lt;/P&gt;</description>
      <pubDate>Thu, 15 Aug 2019 05:15:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581347#M13662</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2019-08-15T05:15:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate date ranges and collapse costs based on ranges</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581431#M13679</link>
      <description>Hi Andreas,&lt;BR /&gt;Thank you for taking time to reply. Sorry for not providing enough information. The sequence of transformation starts with calculating the interval_start and Interval_end from the flag date with 30 day interval and then if the the startdate is within this interval then those costs are accumulated in that want table row.</description>
      <pubDate>Thu, 15 Aug 2019 14:54:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-calculate-date-ranges-and-collapse-costs-based-on-ranges/m-p/581431#M13679</guid>
      <dc:creator>shasank</dc:creator>
      <dc:date>2019-08-15T14:54:58Z</dc:date>
    </item>
  </channel>
</rss>

