<?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: re: Expand Records in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502813#M134280</link>
    <description>&lt;P&gt;This is where&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;character arrays mapping month number to text (edit: was 'test') values for seasons are compact and handy, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/LI&gt;
&lt;LI&gt;using the INTNX function with arguments like "year.2" (12-month years beginning with Feburary), "year.4" (12-month years beginning with April) etc. are the way to step through seasonal time spans:&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Have;
  infile datalines dsd truncover;
  input STD:yymmdd10. ENDT:yymmdd10. menu:$4.;
  format std endt yymmddn8.;
datalines4;
2016-09-02,2017-06-24,IDEM
2016-10-08,2017-04-26,IDEM
2016-11-15,2017-05-30,IDEM
2016-12-29,2017-01-15,IDEM
2017-01-02,2017-06-27,IDEM
2016-02-08,2016-05-24,IDEM
2016-03-15,2016-10-26,IDEM
2016-04-29,2016-08-29,IDEM
2016-05-02,2016-11-23,IDEM
2016-06-08,2016-07-25,IDEM
2016-07-15,2016-08-27,IDEM
2016-08-29,2016-12-15,IDEM
;;;;

data want;
  set have;

  format start_subperiod end_subperiod yymmddn8.;

  array month_to_season_map {12} $6 _temporary_ 
           ('FALL'                              /* Jan */
           ,'WINTER','WINTER'                   /* Feb, Mar */
           ,'SPRING','SPRING','SPRING'          /* Apr May Jun */
           ,'SUMMER','SUMMER'                   /* Jul Aug */
           ,'FALL','FALL','FALL','FALL');       /* Sep Oct Nov Dec */

  seasonstart=month_to_season_map{month(std)};
  seasonend=month_to_season_map{month(endt)};
 
  start_subperiod=std;
  do while (start_subperiod&amp;lt;=endt);
    select(month(start_subperiod));  /* Align end_subperiod */
	  when (9,10,11,12,1) end_subperiod=intnx('year.2',start_subperiod,0,'end');
	  when (2,3)          end_subperiod=intnx('year.4',start_subperiod,0,'end');
	  when (4,5,6)        end_subperiod=intnx('year.7',start_subperiod,0,'end');
	  when (7,8)          end_subperiod=intnx('year.9',start_subperiod,0,'end');
	end;
	end_subperiod=min(end_subperiod,endt);
    season=month_to_season_map{month(end_subperiod)};
    output;
    start_subperiod=end_subperiod+1;  /* go to next season */
  end;
run;&lt;/CODE&gt;&lt;/PRE&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>Tue, 09 Oct 2018 19:05:46 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2018-10-09T19:05:46Z</dc:date>
    <item>
      <title>re: Expand Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502781#M134270</link>
      <description>&lt;P&gt;Hi....I am trying to expand the record if the EndDate carries over to another Season. The Season are Fall from September 1 thru to the following January 31, Winter from February 1 thru March 31, Spring from April 1 thru June 30 and Summer from July 1 thru August 31. I was able to calculate "EndD" as the last day of the Start of the Season. Not sure how to proceed from here....any suggestions. Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Have;
  infile datalines dsd truncover;
  input STD:yymmdd10. ENDT:yymmdd10. menu:$4.;
datalines4;
2016-09-02,2017-06-24,IDEM
2016-10-08,2017-04-26,IDEM
2016-11-15,2017-05-30,IDEM
2016-12-29,2017-01-15,IDEM
2017-01-02,2017-06-27,IDEM
2016-02-08,2016-05-24,IDEM
2016-03-15,2016-10-26,IDEM
2016-04-29,2016-08-29,IDEM
2016-05-02,2016-11-23,IDEM
2016-06-08,2016-07-25,IDEM
2016-07-15,2016-08-27,IDEM
2016-08-29,2016-12-15,IDEM
;;;;

data new;
	length SeasonStart SeasonEnd $6.;
	format SeasonStart SeasonEnd $6.;
set Have;
	if substr(put(STD,yymmdd10.),6,2) in ('09','10','11','12','01') then do;
		StartDate = put(STD,yymmdd10.);
		EndDate = put(ENDT,yymmdd10.);
		EndD = put(intnx('year.2',STD,0,'e'),yymmdd10.);
		SeasonStart = 'Fall';
	end;
	if substr(put(STD,yymmdd10.),6,2) in ('02') then do;
		StartDate = put(STD,yymmdd10.);
		EndDate = put(ENDT,yymmdd10.);
		EndD = put(intnx('year.7',STD,0,'e'),yymmdd10.);
		SeasonStart = 'Winter';
	end;
	if substr(put(STD,yymmdd10.),6,2) in ('03','04','05','06') then do;
		StartDate = put(STD,yymmdd10.);
		EndDate = put(ENDT,yymmdd10.);
		EndD = put(intnx('year.7',STD,0,'e'),yymmdd10.);
		SeasonStart = 'Spring';
	end;
	if substr(put(STD,yymmdd10.),6,2) in ('07','08') then do; 
		StartDate = put(STD,yymmdd10.);
		EndDate = put(ENDT,yymmdd10.);
		EndD = put(intnx('year.9',STD,0,'e'),yymmdd10.);
		SeasonStart = 'Summer';
	end;
	if substr(put(ENDT,yymmdd10.),6,2) in ('09','10','11','12','01') then do;
		SeasonEnd = 'Fall';
	end;
	if substr(put(ENDT,yymmdd10.),6,2) in ('02','05','06') then do;
		SeasonEnd = 'Winter';
	end;
	if substr(put(ENDT,yymmdd10.),6,2) in ('03','04') then do;
		SeasonEnd = 'Spring';
	end;
	if substr(put(ENDT,yymmdd10.),6,2) in ('07','08') then do; 
		SeasonEnd = 'Summer';
	end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Want:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="934"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;SeasonStart&lt;/TD&gt;
&lt;TD width="64"&gt;SeasonEnd&lt;/TD&gt;
&lt;TD width="64"&gt;STD&lt;/TD&gt;
&lt;TD width="64"&gt;ENDT&lt;/TD&gt;
&lt;TD width="64"&gt;menu&lt;/TD&gt;
&lt;TD width="107"&gt;StartDate&lt;/TD&gt;
&lt;TD width="111"&gt;EndDate&lt;/TD&gt;
&lt;TD width="114"&gt;EndD&lt;/TD&gt;
&lt;TD width="117"&gt;StartDate1&lt;/TD&gt;
&lt;TD width="101"&gt;EndDate1&lt;/TD&gt;
&lt;TD width="64"&gt;Season&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20699&lt;/TD&gt;
&lt;TD&gt;20994&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-09-02&lt;/TD&gt;
&lt;TD&gt;2017-06-24&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2016-09-02&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20699&lt;/TD&gt;
&lt;TD&gt;20994&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-09-02&lt;/TD&gt;
&lt;TD&gt;2017-06-24&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-02-01&lt;/TD&gt;
&lt;TD&gt;2017-03-31&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20699&lt;/TD&gt;
&lt;TD&gt;20994&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-09-02&lt;/TD&gt;
&lt;TD&gt;2017-06-24&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-04-01&lt;/TD&gt;
&lt;TD&gt;2017-06-24&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;20735&lt;/TD&gt;
&lt;TD&gt;20935&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-10-08&lt;/TD&gt;
&lt;TD&gt;2017-04-26&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2016-10-08&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;20735&lt;/TD&gt;
&lt;TD&gt;20935&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-10-08&lt;/TD&gt;
&lt;TD&gt;2017-04-26&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-02-01&lt;/TD&gt;
&lt;TD&gt;2017-03-31&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;20735&lt;/TD&gt;
&lt;TD&gt;20935&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-10-08&lt;/TD&gt;
&lt;TD&gt;2017-04-26&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-04-01&lt;/TD&gt;
&lt;TD&gt;2017-04-26&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20773&lt;/TD&gt;
&lt;TD&gt;20969&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-11-15&lt;/TD&gt;
&lt;TD&gt;2017-05-30&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2016-11-15&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20773&lt;/TD&gt;
&lt;TD&gt;20969&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-11-15&lt;/TD&gt;
&lt;TD&gt;2017-05-30&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-02-01&lt;/TD&gt;
&lt;TD&gt;2017-03-31&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20773&lt;/TD&gt;
&lt;TD&gt;20969&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-11-15&lt;/TD&gt;
&lt;TD&gt;2017-05-30&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-04-01&lt;/TD&gt;
&lt;TD&gt;2017-05-30&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20817&lt;/TD&gt;
&lt;TD&gt;20834&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-12-29&lt;/TD&gt;
&lt;TD&gt;2017-01-15&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2016-12-29&lt;/TD&gt;
&lt;TD&gt;2017-01-15&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20821&lt;/TD&gt;
&lt;TD&gt;20997&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2017-01-02&lt;/TD&gt;
&lt;TD&gt;2017-06-27&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-01-02&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20821&lt;/TD&gt;
&lt;TD&gt;20997&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2017-01-02&lt;/TD&gt;
&lt;TD&gt;2017-06-27&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-02-01&lt;/TD&gt;
&lt;TD&gt;2017-03-31&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20821&lt;/TD&gt;
&lt;TD&gt;20997&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2017-01-02&lt;/TD&gt;
&lt;TD&gt;2017-06-27&lt;/TD&gt;
&lt;TD&gt;2017-01-31&lt;/TD&gt;
&lt;TD&gt;2017-04-01&lt;/TD&gt;
&lt;TD&gt;2017-06-27&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20492&lt;/TD&gt;
&lt;TD&gt;20598&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-02-08&lt;/TD&gt;
&lt;TD&gt;2016-05-24&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-02-08&lt;/TD&gt;
&lt;TD&gt;2016-03-31&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;TD&gt;20492&lt;/TD&gt;
&lt;TD&gt;20598&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-02-08&lt;/TD&gt;
&lt;TD&gt;2016-05-24&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-04-01&lt;/TD&gt;
&lt;TD&gt;2016-05-24&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20528&lt;/TD&gt;
&lt;TD&gt;20753&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-03-15&lt;/TD&gt;
&lt;TD&gt;2016-10-26&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-03-15&lt;/TD&gt;
&lt;TD&gt;2016-03-31&lt;/TD&gt;
&lt;TD&gt;Winter&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20528&lt;/TD&gt;
&lt;TD&gt;20753&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-03-15&lt;/TD&gt;
&lt;TD&gt;2016-10-26&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-04-01&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20528&lt;/TD&gt;
&lt;TD&gt;20753&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-03-15&lt;/TD&gt;
&lt;TD&gt;2016-10-26&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-07-01&lt;/TD&gt;
&lt;TD&gt;2016-08-31&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20528&lt;/TD&gt;
&lt;TD&gt;20753&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-03-15&lt;/TD&gt;
&lt;TD&gt;2016-10-26&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-09-01&lt;/TD&gt;
&lt;TD&gt;2016-10-26&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;20573&lt;/TD&gt;
&lt;TD&gt;20695&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-04-29&lt;/TD&gt;
&lt;TD&gt;2016-08-29&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-04-29&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;20573&lt;/TD&gt;
&lt;TD&gt;20695&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-04-29&lt;/TD&gt;
&lt;TD&gt;2016-08-29&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-07-01&lt;/TD&gt;
&lt;TD&gt;2016-08-29&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20576&lt;/TD&gt;
&lt;TD&gt;20781&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-05-02&lt;/TD&gt;
&lt;TD&gt;2016-11-23&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-05-02&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20576&lt;/TD&gt;
&lt;TD&gt;20781&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-05-02&lt;/TD&gt;
&lt;TD&gt;2016-11-23&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-07-01&lt;/TD&gt;
&lt;TD&gt;2016-08-31&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20576&lt;/TD&gt;
&lt;TD&gt;20781&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-05-02&lt;/TD&gt;
&lt;TD&gt;2016-11-23&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-09-01&lt;/TD&gt;
&lt;TD&gt;2016-11-23&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;20613&lt;/TD&gt;
&lt;TD&gt;20660&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-06-08&lt;/TD&gt;
&lt;TD&gt;2016-07-25&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-06-08&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Spring&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;20613&lt;/TD&gt;
&lt;TD&gt;20660&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-06-08&lt;/TD&gt;
&lt;TD&gt;2016-07-25&lt;/TD&gt;
&lt;TD&gt;2016-06-30&lt;/TD&gt;
&lt;TD&gt;2016-07-01&lt;/TD&gt;
&lt;TD&gt;2016-07-25&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;20650&lt;/TD&gt;
&lt;TD&gt;20693&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-07-15&lt;/TD&gt;
&lt;TD&gt;2016-08-27&lt;/TD&gt;
&lt;TD&gt;2016-08-31&lt;/TD&gt;
&lt;TD&gt;2016-07-15&lt;/TD&gt;
&lt;TD&gt;2016-08-27&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20695&lt;/TD&gt;
&lt;TD&gt;20803&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-08-29&lt;/TD&gt;
&lt;TD&gt;2016-12-15&lt;/TD&gt;
&lt;TD&gt;2016-08-31&lt;/TD&gt;
&lt;TD&gt;2016-08-29&lt;/TD&gt;
&lt;TD&gt;2016-08-31&lt;/TD&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Summer&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;TD&gt;20695&lt;/TD&gt;
&lt;TD&gt;20803&lt;/TD&gt;
&lt;TD&gt;IDEM&lt;/TD&gt;
&lt;TD&gt;2016-08-29&lt;/TD&gt;
&lt;TD&gt;2016-12-15&lt;/TD&gt;
&lt;TD&gt;2016-08-31&lt;/TD&gt;
&lt;TD&gt;2016-09-01&lt;/TD&gt;
&lt;TD&gt;2016-12-15&lt;/TD&gt;
&lt;TD&gt;Fall&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Tue, 09 Oct 2018 16:13:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502781#M134270</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2018-10-09T16:13:10Z</dc:date>
    </item>
    <item>
      <title>Re: re: Expand Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502813#M134280</link>
      <description>&lt;P&gt;This is where&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;character arrays mapping month number to text (edit: was 'test') values for seasons are compact and handy, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/LI&gt;
&lt;LI&gt;using the INTNX function with arguments like "year.2" (12-month years beginning with Feburary), "year.4" (12-month years beginning with April) etc. are the way to step through seasonal time spans:&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Have;
  infile datalines dsd truncover;
  input STD:yymmdd10. ENDT:yymmdd10. menu:$4.;
  format std endt yymmddn8.;
datalines4;
2016-09-02,2017-06-24,IDEM
2016-10-08,2017-04-26,IDEM
2016-11-15,2017-05-30,IDEM
2016-12-29,2017-01-15,IDEM
2017-01-02,2017-06-27,IDEM
2016-02-08,2016-05-24,IDEM
2016-03-15,2016-10-26,IDEM
2016-04-29,2016-08-29,IDEM
2016-05-02,2016-11-23,IDEM
2016-06-08,2016-07-25,IDEM
2016-07-15,2016-08-27,IDEM
2016-08-29,2016-12-15,IDEM
;;;;

data want;
  set have;

  format start_subperiod end_subperiod yymmddn8.;

  array month_to_season_map {12} $6 _temporary_ 
           ('FALL'                              /* Jan */
           ,'WINTER','WINTER'                   /* Feb, Mar */
           ,'SPRING','SPRING','SPRING'          /* Apr May Jun */
           ,'SUMMER','SUMMER'                   /* Jul Aug */
           ,'FALL','FALL','FALL','FALL');       /* Sep Oct Nov Dec */

  seasonstart=month_to_season_map{month(std)};
  seasonend=month_to_season_map{month(endt)};
 
  start_subperiod=std;
  do while (start_subperiod&amp;lt;=endt);
    select(month(start_subperiod));  /* Align end_subperiod */
	  when (9,10,11,12,1) end_subperiod=intnx('year.2',start_subperiod,0,'end');
	  when (2,3)          end_subperiod=intnx('year.4',start_subperiod,0,'end');
	  when (4,5,6)        end_subperiod=intnx('year.7',start_subperiod,0,'end');
	  when (7,8)          end_subperiod=intnx('year.9',start_subperiod,0,'end');
	end;
	end_subperiod=min(end_subperiod,endt);
    season=month_to_season_map{month(end_subperiod)};
    output;
    start_subperiod=end_subperiod+1;  /* go to next season */
  end;
run;&lt;/CODE&gt;&lt;/PRE&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>Tue, 09 Oct 2018 19:05:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502813#M134280</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-10-09T19:05:46Z</dc:date>
    </item>
    <item>
      <title>Re: re: Expand Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502818#M134282</link>
      <description>&lt;P&gt;Thanks mkeintz...works perfectly!!&lt;/P&gt;</description>
      <pubDate>Tue, 09 Oct 2018 17:35:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502818#M134282</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2018-10-09T17:35:51Z</dc:date>
    </item>
    <item>
      <title>Re: re: Expand Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502864#M134293</link>
      <description>&lt;P&gt;This method uses a custom interval data set and makes the uneven intervals pretty easy to work&amp;nbsp;with.&amp;nbsp; It should match the result from &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options intervalds=(XSEASON=XSEAS);
data xseas(keep=begin season);
   do y = 2015 to 2017;
      do m=2,4,7,9;         
         begin = mdy(m,1,y);
         season = whichn(m,2,4,7,9);
         output;
         end;
      end;
   format begin date9.;
   run;
proc print;
   run;
data Have;
   id + 1;
   infile datalines dsd truncover;
   input STD:yymmdd10. ENDT:yymmdd10. menu:$4.;
   format std endt yymmdd10.;
   datalines4;
2016-09-02,2017-06-24,IDEM
2016-10-08,2017-04-26,IDEM
2016-11-15,2017-05-30,IDEM
2016-12-29,2017-01-15,IDEM
2017-01-02,2017-06-27,IDEM
2016-02-08,2016-05-24,IDEM
2016-03-15,2016-10-26,IDEM
2016-04-29,2016-08-29,IDEM
2016-05-02,2016-11-23,IDEM
2016-06-08,2016-07-25,IDEM
2016-07-15,2016-08-27,IDEM
2016-08-29,2016-12-15,IDEM
;;;;
   run;
proc print;
   run;
data want;
   set have;
   std0 = std;
   do i = 0 to intck('XSEASON',std,endt);
      xstd = max(intnx('XSEASON',std0,0,'B'),std);
      xend = min(intnx('XSEASON',std0,0,'E'),endt);
      s = INTINDEX('XSEASON',xstd);
      length season $8;
      season = choosec(s,'WINTER','SPRING','SUMMER','FALL');
      output;
      std0 = xend+1;
      end;
   format x: std0 yymmdd10.;
   run;
proc print;
   by id;
   id id;
   run; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 556px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/23916i69266921C1F85995/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Oct 2018 19:32:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Records/m-p/502864#M134293</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2018-10-09T19:32:10Z</dc:date>
    </item>
  </channel>
</rss>

