<?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 SAS Date Range in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318161#M61844</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dear SAS Community:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dataset T created by submitting following SAS code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data T;&lt;BR /&gt; acnum=5041;&lt;BR /&gt; min_ac_dt='01Jan2000'd;&lt;BR /&gt; max_ac_dt='01Jun2010'd;&lt;BR /&gt; format min_ac_dt max_ac_dt DATE9.;&lt;BR /&gt; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need to create additional column "Range_Values" as shown in the attached "sample_output.png" file.below.&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;I am trying with this macro...no luck yet:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%macro date_loop(start,end);&lt;BR /&gt;%let start=%sysfunc(inputn(&amp;amp;start,anydtdte9.));&lt;BR /&gt;%let end=%sysfunc(inputn(&amp;amp;end,anydtdte9.));&lt;BR /&gt; &lt;BR /&gt;%let dif=%sysfunc(intck(month,&amp;amp;start,&amp;amp;end));&lt;BR /&gt;%do i=0 %to &amp;amp;dif;&lt;BR /&gt; %let date=%sysfunc(putn(%sysfunc(intnx(month,&amp;amp;start,&amp;amp;i,b)),yymmp10.));&lt;BR /&gt; %put &amp;amp;date; &lt;BR /&gt;%end; &lt;BR /&gt;%mend;&lt;BR /&gt;%date_loop(01jan2000,01jun2010);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;&lt;IMG src="https://communities.sas.com/t5/image/serverpage/image-id/13248iEF53C269A75EA1C3/image-size/large?v=1.0&amp;amp;px=600" border="0" alt="sample_ouput.PNG" title="sample_ouput.PNG" /&gt;</description>
    <pubDate>Sun, 11 Dec 2016 20:24:21 GMT</pubDate>
    <dc:creator>GPatel</dc:creator>
    <dc:date>2016-12-11T20:24:21Z</dc:date>
    <item>
      <title>SAS Date Range</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318161#M61844</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dear SAS Community:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dataset T created by submitting following SAS code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data T;&lt;BR /&gt; acnum=5041;&lt;BR /&gt; min_ac_dt='01Jan2000'd;&lt;BR /&gt; max_ac_dt='01Jun2010'd;&lt;BR /&gt; format min_ac_dt max_ac_dt DATE9.;&lt;BR /&gt; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need to create additional column "Range_Values" as shown in the attached "sample_output.png" file.below.&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;I am trying with this macro...no luck yet:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%macro date_loop(start,end);&lt;BR /&gt;%let start=%sysfunc(inputn(&amp;amp;start,anydtdte9.));&lt;BR /&gt;%let end=%sysfunc(inputn(&amp;amp;end,anydtdte9.));&lt;BR /&gt; &lt;BR /&gt;%let dif=%sysfunc(intck(month,&amp;amp;start,&amp;amp;end));&lt;BR /&gt;%do i=0 %to &amp;amp;dif;&lt;BR /&gt; %let date=%sysfunc(putn(%sysfunc(intnx(month,&amp;amp;start,&amp;amp;i,b)),yymmp10.));&lt;BR /&gt; %put &amp;amp;date; &lt;BR /&gt;%end; &lt;BR /&gt;%mend;&lt;BR /&gt;%date_loop(01jan2000,01jun2010);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;&lt;IMG src="https://communities.sas.com/t5/image/serverpage/image-id/13248iEF53C269A75EA1C3/image-size/large?v=1.0&amp;amp;px=600" border="0" alt="sample_ouput.PNG" title="sample_ouput.PNG" /&gt;</description>
      <pubDate>Sun, 11 Dec 2016 20:24:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318161#M61844</guid>
      <dc:creator>GPatel</dc:creator>
      <dc:date>2016-12-11T20:24:21Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Date Range</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318162#M61845</link>
      <description>&lt;P&gt;Why macros? Use a loop within a data step and/or a CATX() function.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would suggest you try this first and post back if you have issues and we can help with debugging. You're pretty close but I think the macro part is making this overly difficult.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You also want to look into the INTNX function which can increment your dates by one month.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 11 Dec 2016 20:29:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318162#M61845</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-12-11T20:29:37Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Date Range</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318163#M61846</link>
      <description>I tried intnx function.....&lt;BR /&gt;&lt;BR /&gt;##- Please type your reply above this line. Simple formatting, no&lt;BR /&gt;attachments. -##</description>
      <pubDate>Sun, 11 Dec 2016 20:38:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318163#M61846</guid>
      <dc:creator>GPatel</dc:creator>
      <dc:date>2016-12-11T20:38:19Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Date Range</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318164#M61847</link>
      <description>&lt;P&gt;Get off macros when you don't need them. Simple datastep programming will get you what you want:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data T;
acnum=5041;
min_ac_d='01Jan2000'd;
max_ac_d='01Jun2010'd;
format min_ac_d max_ac_d DATE9.;
length range_values $2000;
month_d = intnx("MONTH", max_ac_d, 0);
do while (month_d &amp;gt;= min_ac_d);
    range_values = catx(";", range_values, put(month_d, yymmp10.));
    month_d = intnx("MONTH", month_d, -1);
    end;
drop month_d;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 11 Dec 2016 21:02:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318164#M61847</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2016-12-11T21:02:44Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Date Range</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318166#M61848</link>
      <description>Thank you! It is perfect solution.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sun, 11 Dec 2016 21:18:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318166#M61848</guid>
      <dc:creator>GPatel</dc:creator>
      <dc:date>2016-12-11T21:18:06Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Date Range</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318185#M61851</link>
      <description>&lt;PRE&gt;

data T;
acnum=5041;
min_ac_d='01Jan2000'd;
max_ac_d='01Jun2010'd;
format min_ac_d max_ac_d DATE9.;
length value $ 20;
do i=min_ac_d  to max_ac_d;
 month=month(i);
 if lag_month ne month then do;
  year=year(i);value=put(i,yymmp.);output;lag_month=month;
 end;
end;
drop i month lag_month;
run;

data want;
length range $ 200;
do until(last.year);
 set t;
 by acnum year;
 range=catx(';',value,range);
end;
drop value year;
run;
&lt;/PRE&gt;</description>
      <pubDate>Mon, 12 Dec 2016 03:16:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318185#M61851</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-12-12T03:16:29Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Date Range</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318220#M61852</link>
      <description>Thanks, it is also elegant solution.&lt;BR /&gt;I am proud of smart SAS ......&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 12 Dec 2016 08:07:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-Date-Range/m-p/318220#M61852</guid>
      <dc:creator>GPatel</dc:creator>
      <dc:date>2016-12-12T08:07:06Z</dc:date>
    </item>
  </channel>
</rss>

