<?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: Delete previous record based on conditions in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69827#M20098</link>
    <description>Hi.&lt;BR /&gt;
If you lik hash table which 's the best benefit is high efficient.&lt;BR /&gt;
[pre]&lt;BR /&gt;
data test;&lt;BR /&gt;
   input NAME $ NO SL $ CNT;&lt;BR /&gt;
   cards;&lt;BR /&gt;
Bob 35 a20 1&lt;BR /&gt;
Bob 44 a22 2&lt;BR /&gt;
Bob 28 a20 3&lt;BR /&gt;
John 35 a20 1&lt;BR /&gt;
John 35 a22 2&lt;BR /&gt;
John 35 a20 3&lt;BR /&gt;
John 35 a20 4&lt;BR /&gt;
John 35 a22 5&lt;BR /&gt;
;;;;&lt;BR /&gt;
   run;&lt;BR /&gt;
data result(keep=name no sl cnt);&lt;BR /&gt;
 declare hash find();&lt;BR /&gt;
 find.definekey('name','no','sl','cnt');&lt;BR /&gt;
 find.definedone();&lt;BR /&gt;
&lt;BR /&gt;
 do until(last);&lt;BR /&gt;
  count+1;&lt;BR /&gt;
  set test end=last;&lt;BR /&gt;
  if sl='a22' and name=lag(name) then do;&lt;BR /&gt;
                                      _point=count-1;&lt;BR /&gt;
                                      set test point=_point;&lt;BR /&gt;
                                      find.add();&lt;BR /&gt;
                                      end;&lt;BR /&gt;
 end;&lt;BR /&gt;
 do until(_last);&lt;BR /&gt;
  set test end=_last;&lt;BR /&gt;
  rc=find.check();&lt;BR /&gt;
  if rc ne 0 then output;&lt;BR /&gt;
 end;&lt;BR /&gt;
stop;&lt;BR /&gt;
run;&lt;BR /&gt;
                                      [/pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Or Maybe you want more simple code,then use Peter.C 's code&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
data test;&lt;BR /&gt;
   input NAME $ NO SL $ CNT;&lt;BR /&gt;
   cards;&lt;BR /&gt;
Bob 35 a20 1&lt;BR /&gt;
Bob 44 a22 2&lt;BR /&gt;
Bob 28 a20 3&lt;BR /&gt;
John 35 a20 1&lt;BR /&gt;
John 35 a22 2&lt;BR /&gt;
John 35 a20 3&lt;BR /&gt;
John 35 a20 4&lt;BR /&gt;
John 35 a22 5&lt;BR /&gt;
;;;;&lt;BR /&gt;
   run;&lt;BR /&gt;
data _result(drop=_name _sl);&lt;BR /&gt;
 merge test test(firstobs=2 keep=name sl rename=(name=_name sl=_sl));&lt;BR /&gt;
 if name=_name and _sl='a22' then delete;&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Ksharp</description>
    <pubDate>Thu, 17 Feb 2011 08:09:11 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2011-02-17T08:09:11Z</dc:date>
    <item>
      <title>Delete previous record based on conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69822#M20093</link>
      <description>Hi can somebody can help me with this?&lt;BR /&gt;
Here is my data:&lt;BR /&gt;
&lt;BR /&gt;
NAME   NO   SL  CNT&lt;BR /&gt;
Bob   35  a20 1&lt;BR /&gt;
Bob   44  a22 2&lt;BR /&gt;
Bob   28  a20 3&lt;BR /&gt;
John  35  a20 1&lt;BR /&gt;
John  35  a22 2&lt;BR /&gt;
John  35  a20 3&lt;BR /&gt;
John  35  a20 4&lt;BR /&gt;
John  35  a22 5&lt;BR /&gt;
&lt;BR /&gt;
Result I want :&lt;BR /&gt;
NAME   NO   SL  CNT&lt;BR /&gt;
Bob   44  a22 2&lt;BR /&gt;
Bob   28  a20 3&lt;BR /&gt;
John  35  a22 2&lt;BR /&gt;
John  35  a20 3&lt;BR /&gt;
John  35  a22 5&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
I want to delete previous record based on conditions &lt;BR /&gt;
My statement should look something like: if SL=a22 then delete previous (one above) record for same NAME. I'm not sure how to do this.&lt;BR /&gt;
Thank you in advance.</description>
      <pubDate>Mon, 07 Feb 2011 13:18:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69822#M20093</guid>
      <dc:creator>bob021</dc:creator>
      <dc:date>2011-02-07T13:18:41Z</dc:date>
    </item>
    <item>
      <title>Re: Delete previous record based on conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69823#M20094</link>
      <description>This method requires that you create a copy of the data with ID and CONDITION variables NAME and SL.  It works but someone will have a better method.&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
data test;&lt;BR /&gt;
   input NAME $ NO SL $ CNT;&lt;BR /&gt;
   cards;&lt;BR /&gt;
Bob 35 a20 1&lt;BR /&gt;
Bob 44 a22 2&lt;BR /&gt;
Bob 28 a20 3&lt;BR /&gt;
John 35 a20 1&lt;BR /&gt;
John 35 a22 2&lt;BR /&gt;
John 35 a20 3&lt;BR /&gt;
John 35 a20 4&lt;BR /&gt;
John 35 a22 5&lt;BR /&gt;
;;;;&lt;BR /&gt;
   run;&lt;BR /&gt;
&lt;BR /&gt;
data test2;&lt;BR /&gt;
   set test(keep=name sl);&lt;BR /&gt;
   run;&lt;BR /&gt;
data test;&lt;BR /&gt;
   set test2;&lt;BR /&gt;
   by name;&lt;BR /&gt;
   if not first.name and sl eq 'a22' then do;&lt;BR /&gt;
      point = _n_-1;&lt;BR /&gt;
      modify test point=point;&lt;BR /&gt;
      remove;&lt;BR /&gt;
      end;&lt;BR /&gt;
   run;&lt;BR /&gt;
proc print data=test;&lt;BR /&gt;
   run;[/pre]</description>
      <pubDate>Mon, 07 Feb 2011 14:40:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69823#M20094</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2011-02-07T14:40:55Z</dc:date>
    </item>
    <item>
      <title>Re: Delete previous record based on conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69824#M20095</link>
      <description>There are many ways to do this. Here is one using a hash obj. It assumes that cnt is without gaps or duplicates within a name.&lt;BR /&gt;&lt;BR /&gt;
&lt;BR /&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;/*&amp;nbsp;test&amp;nbsp;data&amp;nbsp;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;data&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;one;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;name&amp;nbsp;$&amp;nbsp;no&amp;nbsp;sl&amp;nbsp;$&amp;nbsp;cnt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;cards&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bob&amp;nbsp;35&amp;nbsp;a20&amp;nbsp;1&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bob&amp;nbsp;44&amp;nbsp;a22&amp;nbsp;2&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bob&amp;nbsp;28&amp;nbsp;a20&amp;nbsp;3&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;35&amp;nbsp;a20&amp;nbsp;1&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;35&amp;nbsp;a22&amp;nbsp;2&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;35&amp;nbsp;a20&amp;nbsp;3&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;35&amp;nbsp;a20&amp;nbsp;4&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;35&amp;nbsp;a22&amp;nbsp;5&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;run&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;/*&amp;nbsp;removes&amp;nbsp;obs&amp;nbsp;whose&amp;nbsp;cnt&amp;nbsp;is&amp;nbsp;one&amp;nbsp;less&amp;nbsp;than&amp;nbsp;the&amp;nbsp;next&amp;nbsp;one&amp;nbsp;with&amp;nbsp;sl="a22"&amp;nbsp;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;data&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;two;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#FF0000;font-family:Courier New;font-size:10pt;"&gt;dcl&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;hash&amp;nbsp;h();&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h.defineKey(&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;'cnt'&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h.defineDone();&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;until&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;(last.name);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;one;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;name&amp;nbsp;cnt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;sl=&lt;/SPAN&gt;&lt;SPAN style="color:#800080;font-family:Courier New;font-size:10pt;"&gt;"a22"&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cnt&amp;nbsp;=&amp;nbsp;cnt&amp;nbsp;-&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h.add();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;until&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;(last.name);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;one;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;name&amp;nbsp;cnt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;h.check(key:cnt)=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;0&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;continue&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;output&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h.clear();&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;run&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;proc&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;print&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;=two;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;run&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;/*&amp;nbsp;on&amp;nbsp;lst&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Obs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;no&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cnt&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bob&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;44&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bob&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;John&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Feb 2011 15:16:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69824#M20095</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2011-02-07T15:16:25Z</dc:date>
    </item>
    <item>
      <title>Re: Delete previous record based on conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69825#M20096</link>
      <description>Hello,&lt;BR /&gt;
&lt;BR /&gt;
&lt;P&gt;Another one is based on reading same data twice:&lt;/P&gt;&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
data in;&lt;BR /&gt;
input NAME $ NO SL $ CNT;&lt;BR /&gt;
datalines;&lt;BR /&gt;
Bob 35 a20 1&lt;BR /&gt;
Bob 44 a22 2&lt;BR /&gt;
Bob 28 a20 3&lt;BR /&gt;
John 35 a20 1&lt;BR /&gt;
John 35 a22 2&lt;BR /&gt;
John 35 a20 3&lt;BR /&gt;
John 35 a20 4&lt;BR /&gt;
John 35 a22 5&lt;BR /&gt;
;&lt;BR /&gt;
&lt;BR /&gt;
data out;&lt;BR /&gt;
set in (firstobs=2) end=last;&lt;BR /&gt;
set in (rename=(name=_name no=_no sl=_sl cnt=_cnt));&lt;BR /&gt;
&lt;BR /&gt;
_n=_name;&lt;BR /&gt;
&lt;BR /&gt;
if SL ne 'a22' or _n ne name then output;&lt;BR /&gt;
&lt;BR /&gt;
if last then do _name=name;&lt;BR /&gt;
				_no=no;&lt;BR /&gt;
				_sl=sl;&lt;BR /&gt;
				_cnt=cnt;&lt;BR /&gt;
				output;&lt;BR /&gt;
			end;&lt;BR /&gt;
&lt;BR /&gt;
drop name no sl cnt _n;&lt;BR /&gt;
&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;P&gt;Marius&lt;/P&gt;</description>
      <pubDate>Mon, 07 Feb 2011 15:57:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69825#M20096</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2011-02-07T15:57:03Z</dc:date>
    </item>
    <item>
      <title>Re: Delete previous record based on conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69826#M20097</link>
      <description>Hi dat_null, chang, marius&lt;BR /&gt;
Thank you very much for quick responds. All solutions’ works and help me a lot. &lt;BR /&gt;
Bob021</description>
      <pubDate>Tue, 08 Feb 2011 07:51:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69826#M20097</guid>
      <dc:creator>bob021</dc:creator>
      <dc:date>2011-02-08T07:51:03Z</dc:date>
    </item>
    <item>
      <title>Re: Delete previous record based on conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69827#M20098</link>
      <description>Hi.&lt;BR /&gt;
If you lik hash table which 's the best benefit is high efficient.&lt;BR /&gt;
[pre]&lt;BR /&gt;
data test;&lt;BR /&gt;
   input NAME $ NO SL $ CNT;&lt;BR /&gt;
   cards;&lt;BR /&gt;
Bob 35 a20 1&lt;BR /&gt;
Bob 44 a22 2&lt;BR /&gt;
Bob 28 a20 3&lt;BR /&gt;
John 35 a20 1&lt;BR /&gt;
John 35 a22 2&lt;BR /&gt;
John 35 a20 3&lt;BR /&gt;
John 35 a20 4&lt;BR /&gt;
John 35 a22 5&lt;BR /&gt;
;;;;&lt;BR /&gt;
   run;&lt;BR /&gt;
data result(keep=name no sl cnt);&lt;BR /&gt;
 declare hash find();&lt;BR /&gt;
 find.definekey('name','no','sl','cnt');&lt;BR /&gt;
 find.definedone();&lt;BR /&gt;
&lt;BR /&gt;
 do until(last);&lt;BR /&gt;
  count+1;&lt;BR /&gt;
  set test end=last;&lt;BR /&gt;
  if sl='a22' and name=lag(name) then do;&lt;BR /&gt;
                                      _point=count-1;&lt;BR /&gt;
                                      set test point=_point;&lt;BR /&gt;
                                      find.add();&lt;BR /&gt;
                                      end;&lt;BR /&gt;
 end;&lt;BR /&gt;
 do until(_last);&lt;BR /&gt;
  set test end=_last;&lt;BR /&gt;
  rc=find.check();&lt;BR /&gt;
  if rc ne 0 then output;&lt;BR /&gt;
 end;&lt;BR /&gt;
stop;&lt;BR /&gt;
run;&lt;BR /&gt;
                                      [/pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Or Maybe you want more simple code,then use Peter.C 's code&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
data test;&lt;BR /&gt;
   input NAME $ NO SL $ CNT;&lt;BR /&gt;
   cards;&lt;BR /&gt;
Bob 35 a20 1&lt;BR /&gt;
Bob 44 a22 2&lt;BR /&gt;
Bob 28 a20 3&lt;BR /&gt;
John 35 a20 1&lt;BR /&gt;
John 35 a22 2&lt;BR /&gt;
John 35 a20 3&lt;BR /&gt;
John 35 a20 4&lt;BR /&gt;
John 35 a22 5&lt;BR /&gt;
;;;;&lt;BR /&gt;
   run;&lt;BR /&gt;
data _result(drop=_name _sl);&lt;BR /&gt;
 merge test test(firstobs=2 keep=name sl rename=(name=_name sl=_sl));&lt;BR /&gt;
 if name=_name and _sl='a22' then delete;&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Ksharp</description>
      <pubDate>Thu, 17 Feb 2011 08:09:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-previous-record-based-on-conditions/m-p/69827#M20098</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-02-17T08:09:11Z</dc:date>
    </item>
  </channel>
</rss>

