<?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 Rows in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421437#M103676</link>
    <description>&lt;P&gt;I think this does what you want&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;
set have;
sMonth = intck("month",intnx("year.7",startDate,0), startDate);
cMonth = intck("month",intnx("year.7",completionDate,0), completionDate);
if sMonth &amp;lt; 7 then sTerm=1;
else if sMonth &amp;lt; 8 then sTerm = 2;
else sTerm = 3; 
if cMonth &amp;lt; 7 then cTerm=1;
else cTerm = 2;
if sTerm=1 and cTerm=2 then do;
    term = "term 1";
    sDate = startDate;
    cDate = intnx("month",intnx("year.7",startDate,0),6,"end");
    output;
    term = "term 2";
    sDate = intnx("month",intnx("year.7",startDate,0),7); 
    cDate = completionDate;
    output;
    end;
else do;
    term = catx(" ", "term", sTerm);
    sDate = startDate;
    cDate = completionDate;
    output;
    end;
format sDate cDate yymmdd10.;
drop startDate completionDate;
rename sDate=startDate cDate=completionDate;
keep StudentID Program sDate cDate term;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 15 Dec 2017 05:51:21 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2017-12-15T05:51:21Z</dc:date>
    <item>
      <title>re: Expand Rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421417#M103666</link>
      <description>&lt;P&gt;Hi.....I am trying to identify terms between a StartDate and CompletionDate. The terms are identified as July1 thru January 31 (Term 1), February 1 thru June 30 (Term 2), and March 1 thru June 30 (Term 3). Term 2 and Term 3 overlap from March 1 thru June 30 which depends on the StartDate. The StartDate determines the first term whereas the CompletionDate determines whether or not a new row is to be inserted with the next term. Any suggestions on how to do this...thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Want:&lt;/P&gt;
&lt;TABLE width="415"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;StudentID&lt;/TD&gt;
&lt;TD width="103"&gt;Program&lt;/TD&gt;
&lt;TD width="74"&gt;&lt;SPAN&gt;StartDate&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD width="110"&gt;CompletionDate&lt;/TD&gt;
&lt;TD width="64"&gt;Term&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150034&lt;/TD&gt;
&lt;TD&gt;Autobody&lt;/TD&gt;
&lt;TD&gt;20170702&lt;/TD&gt;
&lt;TD&gt;20180131&lt;/TD&gt;
&lt;TD&gt;Term 1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150034&lt;/TD&gt;
&lt;TD&gt;Autobody&lt;/TD&gt;
&lt;TD&gt;20180201&lt;/TD&gt;
&lt;TD&gt;20180630&lt;/TD&gt;
&lt;TD&gt;Term 2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150043&lt;/TD&gt;
&lt;TD&gt;AutoMechanics&lt;/TD&gt;
&lt;TD&gt;20170803&lt;/TD&gt;
&lt;TD&gt;20180131&lt;/TD&gt;
&lt;TD&gt;Term 1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150043&lt;/TD&gt;
&lt;TD&gt;AutoMechanics&lt;/TD&gt;
&lt;TD&gt;20180201&lt;/TD&gt;
&lt;TD&gt;20180625&lt;/TD&gt;
&lt;TD&gt;Term 2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150054&lt;/TD&gt;
&lt;TD&gt;HairStyling&lt;/TD&gt;
&lt;TD&gt;20170105&lt;/TD&gt;
&lt;TD&gt;20170628&lt;/TD&gt;
&lt;TD&gt;Term 2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150068&lt;/TD&gt;
&lt;TD&gt;HairStyling&lt;/TD&gt;
&lt;TD&gt;20180304&lt;/TD&gt;
&lt;TD&gt;20180627&lt;/TD&gt;
&lt;TD&gt;Term 3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150075&lt;/TD&gt;
&lt;TD&gt;AutoMechanics&lt;/TD&gt;
&lt;TD&gt;20160903&lt;/TD&gt;
&lt;TD&gt;20170131&lt;/TD&gt;
&lt;TD&gt;Term 1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150075&lt;/TD&gt;
&lt;TD&gt;AutoMechanics&lt;/TD&gt;
&lt;TD&gt;20170201&lt;/TD&gt;
&lt;TD&gt;20170626&lt;/TD&gt;
&lt;TD&gt;Term 2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150078&lt;/TD&gt;
&lt;TD&gt;AutoMechanics&lt;/TD&gt;
&lt;TD&gt;20180403&lt;/TD&gt;
&lt;TD&gt;20180625&lt;/TD&gt;
&lt;TD&gt;Term 3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;150088&lt;/TD&gt;
&lt;TD&gt;Autobody&lt;/TD&gt;
&lt;TD&gt;20170902&lt;/TD&gt;
&lt;TD&gt;20180130&lt;/TD&gt;
&lt;TD&gt;Term 1&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data have;
length StudentID $6 Program $100;
input StudentID$ Program$ StartDate:yymmdd10. CompletionDate:yymmdd10.;
format StartDate CompletionDate yymmdd10.;
datalines;
150034	Autobody 20170702 20180630
150043	AutoMechanics	20170803 20180625
150054	HairStyling 20170105 20170628
150068	HairStyling 20170304 20180627
150075	AutoMechanics	20160903 20170626
150078	AutoMechanics	20180403 20180625
150088	Autobody 20170902 20190125
150099	AutoMechanics	20180304 20180625
;
&lt;/PRE&gt;</description>
      <pubDate>Fri, 15 Dec 2017 00:11:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421417#M103666</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2017-12-15T00:11:10Z</dc:date>
    </item>
    <item>
      <title>Re: re: Expand Rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421437#M103676</link>
      <description>&lt;P&gt;I think this does what you want&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;
set have;
sMonth = intck("month",intnx("year.7",startDate,0), startDate);
cMonth = intck("month",intnx("year.7",completionDate,0), completionDate);
if sMonth &amp;lt; 7 then sTerm=1;
else if sMonth &amp;lt; 8 then sTerm = 2;
else sTerm = 3; 
if cMonth &amp;lt; 7 then cTerm=1;
else cTerm = 2;
if sTerm=1 and cTerm=2 then do;
    term = "term 1";
    sDate = startDate;
    cDate = intnx("month",intnx("year.7",startDate,0),6,"end");
    output;
    term = "term 2";
    sDate = intnx("month",intnx("year.7",startDate,0),7); 
    cDate = completionDate;
    output;
    end;
else do;
    term = catx(" ", "term", sTerm);
    sDate = startDate;
    cDate = completionDate;
    output;
    end;
format sDate cDate yymmdd10.;
drop startDate completionDate;
rename sDate=startDate cDate=completionDate;
keep StudentID Program sDate cDate term;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 15 Dec 2017 05:51:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421437#M103676</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-12-15T05:51:21Z</dc:date>
    </item>
    <item>
      <title>Re: re: Expand Rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421574#M103693</link>
      <description>&lt;P&gt;Hi PG....Thanks for your help.....it almost does exactly what I need and want....it doesn't advance to the next academic year if the completion date is in another academic year. For example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;150068 HairStyling 20170304 20180627&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;should end up with:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;150068 HairStyling 20170304 20170630 Term 3&lt;/P&gt;
&lt;P&gt;150068 HairStyling 20170701 20180131 Term 1&lt;/P&gt;
&lt;P&gt;150068 HairStyling 20180201 20180627 Term 2&lt;/P&gt;</description>
      <pubDate>Fri, 15 Dec 2017 14:20:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421574#M103693</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2017-12-15T14:20:10Z</dc:date>
    </item>
    <item>
      <title>Re: re: Expand Rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421684#M103715</link>
      <description>&lt;P&gt;You never mentioned anything about a program lasting more than two terms. So now a program can last three terms. Then what?&lt;/P&gt;</description>
      <pubDate>Fri, 15 Dec 2017 19:18:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421684#M103715</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-12-15T19:18:35Z</dc:date>
    </item>
    <item>
      <title>Re: re: Expand Rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421709#M103719</link>
      <description>&lt;P&gt;The duration of a program varies and have a specific start and completion date for that program. Not all programs start at the same time and can carry over to the next academic year. For example, a&amp;nbsp;program may start in September and finish the following June where both start dates and completion dates are in the same academic year whereas the same program may be offered as January start and finish in December where the start dates and completion dates are in different academic years.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Dec 2017 20:38:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-Expand-Rows/m-p/421709#M103719</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2017-12-15T20:38:36Z</dc:date>
    </item>
  </channel>
</rss>

