<?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: Do while ? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582185#M165544</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/70526"&gt;@Ivy&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Dear friends,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to create the "combo2 and old" at the highlight below based on the conditions, and comparing the variables at end of the condition or 1st record dose not apply the condition. I am wondering what is wrong with the "do while" statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Thank you very much!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;data t;&lt;BR /&gt;input dt date9. name $ ;&lt;BR /&gt;format dt mmddyy10.;&lt;BR /&gt;datalines;&lt;BR /&gt;09SEP2015 a&lt;BR /&gt;29SEP2015 b&lt;BR /&gt;30SEP2015 a&lt;BR /&gt;06OCT2015 b&lt;BR /&gt;02NOV2015 c&lt;BR /&gt;16NOV2015 a&lt;BR /&gt;23NOV2015 c&lt;BR /&gt;30NOV2015 a&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data t1;&lt;BR /&gt;set t;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;format dt1 mmddyy10. ;&lt;BR /&gt;retain dt1 combo1 combo2;&lt;/P&gt;
&lt;P&gt;length combo1 combo2&amp;nbsp; $20. ;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if name = 'c' and dt ='02NOV2015'd then do;&lt;BR /&gt;combo1 = 'a+b';&lt;BR /&gt;combo2 = 'c';&lt;BR /&gt;dt1 = dt;&lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;else &amp;nbsp;do;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;do while (dt1 &amp;lt; dt &amp;lt; dt1 + 20);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if findw(combo2, strip(name)) = 0 then combo2 = cats(combo2,"+", strip(name));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; do i = 1 to countc(combo1, "+") + 1 ;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if findw(combo2, strip(scan(combo1, i, "+"))) &amp;gt; 0 then old = 1;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; else old = 0;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&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;dt&lt;/TD&gt;
&lt;TD&gt;name&lt;/TD&gt;
&lt;TD&gt;Combo1&lt;/TD&gt;
&lt;TD&gt;combo2&lt;/TD&gt;
&lt;TD&gt;old&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9/9/2015&lt;/TD&gt;
&lt;TD&gt;a&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;9/29/2015&lt;/TD&gt;
&lt;TD&gt;b&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;9/30/2015&lt;/TD&gt;
&lt;TD&gt;a&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;10/6/2015&lt;/TD&gt;
&lt;TD&gt;b&lt;/TD&gt;
&lt;TD&gt;a+b&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;11/2/2015&lt;/TD&gt;
&lt;TD&gt;c&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;c&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11/16/2015&lt;/TD&gt;
&lt;TD&gt;a&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;c+a&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11/23/2015&lt;/TD&gt;
&lt;TD&gt;c&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;11/30/2015&lt;/TD&gt;
&lt;TD&gt;a&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;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Since DT1 starts out = DT &lt;STRONG&gt;and never changes&lt;/STRONG&gt;&amp;nbsp; the comparison&lt;/P&gt;
&lt;PRE&gt;(dt1 &amp;lt; dt &amp;lt; dt1 + 20)&lt;/PRE&gt;
&lt;P&gt;is always false. For any value&amp;nbsp; A&amp;lt;A is false. So the Do While loop never initiates because you have told it not to.&lt;/P&gt;
&lt;P&gt;For that Do While loop to have any&amp;nbsp; use you likely need to be doing something, but I haven't a clue what the need is, to the variable DT1 and your start condition needs to be better defined as well as your rule for how to determine which records need to be processed in general.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 19 Aug 2019 17:31:58 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2019-08-19T17:31:58Z</dc:date>
    <item>
      <title>Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582159#M165525</link>
      <description>&lt;P&gt;Dear friends,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to create the "combo2 and old" at the highlight below based on the conditions, and comparing the variables at end of the condition or 1st record dose not apply the condition. I am wondering what is wrong with the "do while" statement.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Thank you very much!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data t;&lt;BR /&gt;input dt date9. name $ ;&lt;BR /&gt;format dt mmddyy10.;&lt;BR /&gt;datalines;&lt;BR /&gt;09SEP2015 a&lt;BR /&gt;29SEP2015 b&lt;BR /&gt;30SEP2015 a&lt;BR /&gt;06OCT2015 b&lt;BR /&gt;02NOV2015 c&lt;BR /&gt;16NOV2015 a&lt;BR /&gt;23NOV2015 c&lt;BR /&gt;30NOV2015 a&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data t1;&lt;BR /&gt;set t;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;format dt1 mmddyy10. ;&lt;BR /&gt;retain dt1 combo1 combo2;&lt;/P&gt;&lt;P&gt;length combo1 combo2&amp;nbsp; $20. ;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if name = 'c' and dt ='02NOV2015'd then do;&lt;BR /&gt;combo1 = 'a+b';&lt;BR /&gt;combo2 = 'c';&lt;BR /&gt;dt1 = dt;&lt;BR /&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;else &amp;nbsp;do;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;do while (.&amp;lt; dt1 &amp;lt; dt &amp;lt; dt1 + 20);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if findw(combo2, strip(name)) = 0 then combo2 = cats(combo2,"+", strip(name));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; do i = 1 to countc(combo1, "+") + 1 ;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if findw(combo2, strip(scan(combo1, i, "+"))) &amp;gt; 0 then old = 1;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; else old = 0;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;dt&lt;/TD&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;Combo1&lt;/TD&gt;&lt;TD&gt;combo2&lt;/TD&gt;&lt;TD&gt;old&lt;/TD&gt;&lt;TD&gt;Dt1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9/9/2015&lt;/TD&gt;&lt;TD&gt;a&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;9/29/2015&lt;/TD&gt;&lt;TD&gt;b&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;9/30/2015&lt;/TD&gt;&lt;TD&gt;a&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;10/6/2015&lt;/TD&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;a+b&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;11/2/2015&lt;/TD&gt;&lt;TD&gt;c&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;11/2/2015&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11/16/2015&lt;/TD&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;&lt;FONT color="#800080"&gt;c+a&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#800080"&gt;1&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;11/2/2015&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11/23/2015&lt;/TD&gt;&lt;TD&gt;c&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;11/2/2015&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11/30/2015&lt;/TD&gt;&lt;TD&gt;a&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;11/2/2015&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 19 Aug 2019 17:48:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582159#M165525</guid>
      <dc:creator>Ivy</dc:creator>
      <dc:date>2019-08-19T17:48:01Z</dc:date>
    </item>
    <item>
      <title>Re: Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582164#M165528</link>
      <description>&lt;P&gt;I'm not really following the logic here. Can you elaborate?&lt;/P&gt;</description>
      <pubDate>Mon, 19 Aug 2019 16:37:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582164#M165528</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-08-19T16:37:03Z</dc:date>
    </item>
    <item>
      <title>Re: Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582166#M165529</link>
      <description>&lt;P&gt;Start here and see if this clears it up.&amp;nbsp; This statement causes a problem:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;combo2 = 'c';&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It defines COMBO2 as being 1 character long, so there isn't room to add more characters to the end of it.&amp;nbsp; Try adding this statement beforehand:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;length combo2 $ 10;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Aug 2019 16:43:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582166#M165529</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-08-19T16:43:37Z</dc:date>
    </item>
    <item>
      <title>Re: Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582173#M165533</link>
      <description>The problem is " DO While" do not run. &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;</description>
      <pubDate>Mon, 19 Aug 2019 17:14:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582173#M165533</guid>
      <dc:creator>Ivy</dc:creator>
      <dc:date>2019-08-19T17:14:07Z</dc:date>
    </item>
    <item>
      <title>Re: Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582176#M165536</link>
      <description>When I see name "c", I want to evaluate all the names during the conditional date (20 days period after seeing name "C"), then at the last record of the conditions to comparing with "a+b".</description>
      <pubDate>Mon, 19 Aug 2019 17:16:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582176#M165536</guid>
      <dc:creator>Ivy</dc:creator>
      <dc:date>2019-08-19T17:16:03Z</dc:date>
    </item>
    <item>
      <title>Re: Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582177#M165537</link>
      <description>&lt;P&gt;Good thing it didn't run.&amp;nbsp; If it did run, it would still be running for as long as you keep your computer turned on.&amp;nbsp; The logic of the DO WHILE loop will never change your condition from being true to being false, so it will run forever.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Perhaps you should explain what it is you would like the DO WHILE loop to accomplish, and we can modify the program accordingly.&lt;/P&gt;</description>
      <pubDate>Mon, 19 Aug 2019 17:19:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582177#M165537</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-08-19T17:19:17Z</dc:date>
    </item>
    <item>
      <title>Re: Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582183#M165542</link>
      <description>Thanks. My goal is below, actually, the program is running never stops.&lt;BR /&gt;&lt;BR /&gt;When I see name "c", I want to evaluate all the names during the conditional date (20 days period after seeing name "C"), then at the last record of the conditions to comparing with "a+b".</description>
      <pubDate>Mon, 19 Aug 2019 17:27:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582183#M165542</guid>
      <dc:creator>Ivy</dc:creator>
      <dc:date>2019-08-19T17:27:32Z</dc:date>
    </item>
    <item>
      <title>Re: Do while ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582185#M165544</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/70526"&gt;@Ivy&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Dear friends,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to create the "combo2 and old" at the highlight below based on the conditions, and comparing the variables at end of the condition or 1st record dose not apply the condition. I am wondering what is wrong with the "do while" statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Thank you very much!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;data t;&lt;BR /&gt;input dt date9. name $ ;&lt;BR /&gt;format dt mmddyy10.;&lt;BR /&gt;datalines;&lt;BR /&gt;09SEP2015 a&lt;BR /&gt;29SEP2015 b&lt;BR /&gt;30SEP2015 a&lt;BR /&gt;06OCT2015 b&lt;BR /&gt;02NOV2015 c&lt;BR /&gt;16NOV2015 a&lt;BR /&gt;23NOV2015 c&lt;BR /&gt;30NOV2015 a&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data t1;&lt;BR /&gt;set t;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;format dt1 mmddyy10. ;&lt;BR /&gt;retain dt1 combo1 combo2;&lt;/P&gt;
&lt;P&gt;length combo1 combo2&amp;nbsp; $20. ;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if name = 'c' and dt ='02NOV2015'd then do;&lt;BR /&gt;combo1 = 'a+b';&lt;BR /&gt;combo2 = 'c';&lt;BR /&gt;dt1 = dt;&lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;else &amp;nbsp;do;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;do while (dt1 &amp;lt; dt &amp;lt; dt1 + 20);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if findw(combo2, strip(name)) = 0 then combo2 = cats(combo2,"+", strip(name));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; do i = 1 to countc(combo1, "+") + 1 ;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if findw(combo2, strip(scan(combo1, i, "+"))) &amp;gt; 0 then old = 1;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; else old = 0;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&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;dt&lt;/TD&gt;
&lt;TD&gt;name&lt;/TD&gt;
&lt;TD&gt;Combo1&lt;/TD&gt;
&lt;TD&gt;combo2&lt;/TD&gt;
&lt;TD&gt;old&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9/9/2015&lt;/TD&gt;
&lt;TD&gt;a&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;9/29/2015&lt;/TD&gt;
&lt;TD&gt;b&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;9/30/2015&lt;/TD&gt;
&lt;TD&gt;a&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;10/6/2015&lt;/TD&gt;
&lt;TD&gt;b&lt;/TD&gt;
&lt;TD&gt;a+b&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;11/2/2015&lt;/TD&gt;
&lt;TD&gt;c&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;c&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11/16/2015&lt;/TD&gt;
&lt;TD&gt;a&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;c+a&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#800080"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11/23/2015&lt;/TD&gt;
&lt;TD&gt;c&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;11/30/2015&lt;/TD&gt;
&lt;TD&gt;a&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;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Since DT1 starts out = DT &lt;STRONG&gt;and never changes&lt;/STRONG&gt;&amp;nbsp; the comparison&lt;/P&gt;
&lt;PRE&gt;(dt1 &amp;lt; dt &amp;lt; dt1 + 20)&lt;/PRE&gt;
&lt;P&gt;is always false. For any value&amp;nbsp; A&amp;lt;A is false. So the Do While loop never initiates because you have told it not to.&lt;/P&gt;
&lt;P&gt;For that Do While loop to have any&amp;nbsp; use you likely need to be doing something, but I haven't a clue what the need is, to the variable DT1 and your start condition needs to be better defined as well as your rule for how to determine which records need to be processed in general.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Aug 2019 17:31:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-while/m-p/582185#M165544</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-08-19T17:31:58Z</dc:date>
    </item>
  </channel>
</rss>

