<?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 Update Rows based on Condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Update-Rows-based-on-Condition/m-p/479897#M286568</link>
    <description>&lt;P&gt;Is there an efficient way to modify table retention to table retention 2.&amp;nbsp; I can think of a few ways that might be hard for others to follow when looking at the code later on.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The business role is that students are enrolled up to the point that they are not retained.&amp;nbsp; If the student transfers out within one semester of transferring out then first semester of not retained is altered to transferred out.&amp;nbsp; Column semester count is included to update transfer outs for three semesters.&amp;nbsp; The logic is to update person_id records where semester count is in 1,2, 3 and any of the semesters is transfer and of none of those records are enrolled.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;/*create the table*/ &lt;BR /&gt;proc sql; &lt;BR /&gt;CREATE TABLE Retention ( &lt;BR /&gt; Person_ID int, &lt;BR /&gt; Academic_period varchar(6), &lt;BR /&gt; Semester_Count int, &lt;BR /&gt; Attend_Status varchar(50) &lt;BR /&gt;);&lt;/P&gt;
&lt;P&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200020', 1, 'Not Retained');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200110', 3, 'Transfer');&lt;/P&gt;
&lt;P&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200020', 1, 'Not Retained');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200110', 3, 'Enrolled');&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;proc sql; &lt;BR /&gt;CREATE TABLE Retention2 ( &lt;BR /&gt; Person_ID int, &lt;BR /&gt; Academic_period varchar(6), &lt;BR /&gt; Semester_Count int, &lt;BR /&gt; Attend_Status varchar(50) &lt;BR /&gt;);&lt;/P&gt;
&lt;P&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200020', 1, 'Transfer');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200110', 3, 'Transfer');&lt;/P&gt;
&lt;P&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200020', 1, 'Not Retained');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200110', 3, 'Enrolled');&lt;/P&gt;</description>
    <pubDate>Fri, 20 Jul 2018 14:55:10 GMT</pubDate>
    <dc:creator>DavidPhillips2</dc:creator>
    <dc:date>2018-07-20T14:55:10Z</dc:date>
    <item>
      <title>Update Rows based on Condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Update-Rows-based-on-Condition/m-p/479897#M286568</link>
      <description>&lt;P&gt;Is there an efficient way to modify table retention to table retention 2.&amp;nbsp; I can think of a few ways that might be hard for others to follow when looking at the code later on.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The business role is that students are enrolled up to the point that they are not retained.&amp;nbsp; If the student transfers out within one semester of transferring out then first semester of not retained is altered to transferred out.&amp;nbsp; Column semester count is included to update transfer outs for three semesters.&amp;nbsp; The logic is to update person_id records where semester count is in 1,2, 3 and any of the semesters is transfer and of none of those records are enrolled.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;/*create the table*/ &lt;BR /&gt;proc sql; &lt;BR /&gt;CREATE TABLE Retention ( &lt;BR /&gt; Person_ID int, &lt;BR /&gt; Academic_period varchar(6), &lt;BR /&gt; Semester_Count int, &lt;BR /&gt; Attend_Status varchar(50) &lt;BR /&gt;);&lt;/P&gt;
&lt;P&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200020', 1, 'Not Retained');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200110', 3, 'Transfer');&lt;/P&gt;
&lt;P&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200020', 1, 'Not Retained');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200110', 3, 'Enrolled');&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;proc sql; &lt;BR /&gt;CREATE TABLE Retention2 ( &lt;BR /&gt; Person_ID int, &lt;BR /&gt; Academic_period varchar(6), &lt;BR /&gt; Semester_Count int, &lt;BR /&gt; Attend_Status varchar(50) &lt;BR /&gt;);&lt;/P&gt;
&lt;P&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200020', 1, 'Transfer');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200110', 3, 'Transfer');&lt;/P&gt;
&lt;P&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200010', 0, 'Enrolled');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200020', 1, 'Not Retained');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200030', 2, 'Transfer');&lt;BR /&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200110', 3, 'Enrolled');&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jul 2018 14:55:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Update-Rows-based-on-Condition/m-p/479897#M286568</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2018-07-20T14:55:10Z</dc:date>
    </item>
    <item>
      <title>Re: Update Rows based on Condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Update-Rows-based-on-Condition/m-p/479904#M286569</link>
      <description>&lt;P&gt;This worked:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*create the table*/ &lt;BR /&gt;proc sql; &lt;BR /&gt; CREATE TABLE Retention ( &lt;BR /&gt; Person_ID int, &lt;BR /&gt; Academic_period varchar(6), &lt;BR /&gt; Semester_Count int, &lt;BR /&gt; Attend_Status varchar(50) &lt;BR /&gt; );&lt;/P&gt;
&lt;P&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200010', 0, 'Enrolled');&lt;BR /&gt; insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200020', 1, 'Not Retained');&lt;BR /&gt; insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200030', 2, 'Transfer');&lt;BR /&gt; insert into retention (person_Id, academic_period, semester_count, attend_status) values (1, '200110', 3, 'Transfer');&lt;/P&gt;
&lt;P&gt;insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200010', 0, 'Enrolled');&lt;BR /&gt; insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200020', 1, 'Not Retained');&lt;BR /&gt; insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200030', 2, 'Transfer');&lt;BR /&gt; insert into retention (person_Id, academic_period, semester_count, attend_status) values (2, '200110', 3, 'Enrolled');&lt;BR /&gt; &lt;BR /&gt; CREATE TABLE Retention2 ( &lt;BR /&gt; Person_ID int, &lt;BR /&gt; Academic_period varchar(6), &lt;BR /&gt; Semester_Count int, &lt;BR /&gt; Attend_Status varchar(50) &lt;BR /&gt; );&lt;/P&gt;
&lt;P&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200010', 0, 'Enrolled');&lt;BR /&gt; insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200020', 1, 'Transfer');&lt;BR /&gt; insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200030', 2, 'Transfer');&lt;BR /&gt; insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (1, '200110', 3, 'Transfer');&lt;/P&gt;
&lt;P&gt;insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200010', 0, 'Enrolled');&lt;BR /&gt; insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200020', 1, 'Not Retained');&lt;BR /&gt; insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200030', 2, 'Transfer');&lt;BR /&gt; insert into retention2 (person_Id, academic_period, semester_count, attend_status) values (2, '200110', 3, 'Enrolled');&lt;/P&gt;
&lt;P&gt;create table TransferOutUpdateList as&lt;BR /&gt; select distinct person_id &lt;BR /&gt; from retention&lt;BR /&gt; where semester_count in (1,2,3) and Attend_Status = 'Transfer';&lt;/P&gt;
&lt;P&gt;update retention set Attend_Status = 'Transfer' &lt;BR /&gt; where person_id in (select distinct person_id from TransferOutUpdateList) and attend_status = 'Not Retained' and semester_count in (1,2,3);&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jul 2018 15:08:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Update-Rows-based-on-Condition/m-p/479904#M286569</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2018-07-20T15:08:38Z</dc:date>
    </item>
  </channel>
</rss>

