<?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: How to check a record against a previous record in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3151#M1003</link>
    <description>Hi,&lt;BR /&gt;
  Again, I'd find it helpful to understand the rest of the processing you need to do. However, in theory, let's look at how BY GROUP processing works within a SAS data step program (and put aside SQL query syntax right now). Consider this data which is a file of gift ideas, multiple ideas per person. Silly data, I know, but it helps to visualize how things work:&lt;BR /&gt;
[pre]&lt;BR /&gt;
data gifts;&lt;BR /&gt;
length name $8 occasion $12 idea $8 amt 8; &lt;BR /&gt;
infile datalines;&lt;BR /&gt;
input name occasion idea amt;&lt;BR /&gt;
return;&lt;BR /&gt;
datalines;&lt;BR /&gt;
cynthia  anniversary jewelry  50&lt;BR /&gt;
cynthia  anniversary tunes    25&lt;BR /&gt;
cynthia  birthday    books    50&lt;BR /&gt;
cynthia  birthday    jewelry  75&lt;BR /&gt;
cynthia  christmas   clothes 100&lt;BR /&gt;
cynthia  christmas   jewelry  75&lt;BR /&gt;
lee      anniversary bikegear 50&lt;BR /&gt;
lee      anniversary books    50&lt;BR /&gt;
lee      any         bikegear 50&lt;BR /&gt;
lee      any         tunes    50&lt;BR /&gt;
lee      birthday    tunes    50&lt;BR /&gt;
lee      birthday    books    50&lt;BR /&gt;
lee      christmas   books   100&lt;BR /&gt;
lee      christmas   computer 50&lt;BR /&gt;
sarah    any         tunes    25&lt;BR /&gt;
sarah    any         money    50&lt;BR /&gt;
sarah    birthday    jewelry  50&lt;BR /&gt;
sarah    birthday    giftcard 50&lt;BR /&gt;
sarah    christmas   tunes    25&lt;BR /&gt;
sarah    christmas   jewelry  50&lt;BR /&gt;
sarah    graduation  books   100&lt;BR /&gt;
sarah    graduation  money   100&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
     &lt;BR /&gt;
ods listing;&lt;BR /&gt;
proc print data=gifts;&lt;BR /&gt;
title 'Before - All Rows';&lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
Now, let's say I want to do -something- with the gift file. I can "turn on" by group processing for the NAME column and then check the values of FIRST.NAME and LAST.NAME automatic variables that get created when I use the BY statement in a DATA step program:&lt;BR /&gt;
[pre]&lt;BR /&gt;
** show what first.byvar and last.byvar are;&lt;BR /&gt;
data ckbyvar;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name;&lt;BR /&gt;
  firstflag = first.name;&lt;BR /&gt;
  lastflag = last.name;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc print data=ckbyvar;&lt;BR /&gt;
title 'What First.byvar and Last.byvar are for each obs';&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
[/pre]&lt;BR /&gt;
    &lt;BR /&gt;
And this is the output. Note the changing values of the firstflag column and the lastflag column. This means that you KNOW that NAME &lt;BR /&gt;
is the same (or different) for every OBS by testing the values for first.name and last.name. &lt;BR /&gt;
For example, when first.name=1 then I know that this name is either different from the previous name or is the first name in the file (which I can test with _n_=1). &lt;BR /&gt;
Usually, these variables are not output to a dataset -- which is why I had to capture them to other named variables.&lt;BR /&gt;
   &lt;BR /&gt;
[pre]&lt;BR /&gt;
     What First.byvar and Last.byvar are for each obs&lt;BR /&gt;
&lt;BR /&gt;
Obs  name     occasion      idea      amt  firstflag  lastflag&lt;BR /&gt;
 1   cynthia  anniversary   jewelry    50      1          0&lt;BR /&gt;
 2   cynthia  anniversary   tunes      25      0          0&lt;BR /&gt;
 3   cynthia  birthday      books      50      0          0&lt;BR /&gt;
 4   cynthia  birthday      jewelry    75      0          0&lt;BR /&gt;
 5   cynthia  christmas     clothes   100      0          0&lt;BR /&gt;
 6   cynthia  christmas     jewelry    75      0          1&lt;BR /&gt;
 7   lee      anniversary   bikegear   50      1          0&lt;BR /&gt;
 8   lee      anniversary   books      50      0          0&lt;BR /&gt;
 9   lee      any           bikegear   50      0          0&lt;BR /&gt;
10   lee      any           tunes      50      0          0&lt;BR /&gt;
11   lee      birthday      books      50      0          0&lt;BR /&gt;
12   lee      birthday      tunes      50      0          0&lt;BR /&gt;
13   lee      christmas     books     100      0          0&lt;BR /&gt;
14   lee      christmas     computer   50      0          1&lt;BR /&gt;
15   sarah    any           money      50      1          0&lt;BR /&gt;
16   sarah    any           tunes      25      0          0&lt;BR /&gt;
17   sarah    birthday      giftcard   50      0          0&lt;BR /&gt;
18   sarah    birthday      jewelry    50      0          0&lt;BR /&gt;
19   sarah    christmas     jewelry    50      0          0&lt;BR /&gt;
20   sarah    christmas     tunes      25      0          0&lt;BR /&gt;
21   sarah    graduation    books     100      0          0&lt;BR /&gt;
22   sarah    graduation    money     100      0          1&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
Then, if  I want to just COUNT the "non-any" ideas per person (for some reason, I don't want to do this with a procedure), then I could do this:&lt;BR /&gt;
[pre]&lt;BR /&gt;
** count number of ideas per person;&lt;BR /&gt;
data cntidea(keep=name totidea);&lt;BR /&gt;
  retain totidea;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name;&lt;BR /&gt;
  if first.name then totidea = 0;&lt;BR /&gt;
  if occasion ne 'any' then totidea + 1;&lt;BR /&gt;
  if last.name then output;&lt;BR /&gt;
run;&lt;BR /&gt;
         &lt;BR /&gt;
proc print data=cntidea;&lt;BR /&gt;
title 'ideas per name';&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
 &lt;BR /&gt;
But, if what you want to do is ALWAYS compare a value on this record with the value on the previous record (without regard to by group processing), then you can do something like this:&lt;BR /&gt;
 &lt;BR /&gt;
[pre]&lt;BR /&gt;
** just test same or different name;&lt;BR /&gt;
data testname;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  retain prevname;&lt;BR /&gt;
  if _n_ = 1 then do; &lt;BR /&gt;
    prevname = name;&lt;BR /&gt;
    flag = 'start';&lt;BR /&gt;
  end;&lt;BR /&gt;
  else if _n_ gt 1 then do;&lt;BR /&gt;
  if name = prevname then flag='same';&lt;BR /&gt;
     else do; &lt;BR /&gt;
       flag = 'diff'; &lt;BR /&gt;
       prevname = name; &lt;BR /&gt;
     end;&lt;BR /&gt;
  end;&lt;BR /&gt;
run;&lt;BR /&gt;
                &lt;BR /&gt;
proc print data=testname;&lt;BR /&gt;
 title 'set a single flag';&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
 &lt;BR /&gt;
This sets a single flag whose values are either "start", "same" or "diff" depending on whether the name is the same as the name on the last record or obs.&lt;BR /&gt;
  &lt;BR /&gt;
And, last, but not least, you could use the LAG function:&lt;BR /&gt;
[pre]&lt;BR /&gt;
** using LAG;&lt;BR /&gt;
data uselag;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  prevname = lag(name);&lt;BR /&gt;
  if _n_ = 1 then prevname = name;&lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
proc print data=uselag;&lt;BR /&gt;
   title 'Lag Output';&lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
[/pre]&lt;BR /&gt;
 &lt;BR /&gt;
Play around with these examples and the ones below and see whether any of them give you some ideas of how to do your testing.&lt;BR /&gt;
cynthia&lt;BR /&gt;
&lt;BR /&gt;
***more examples of BY group processing&lt;BR /&gt;
[pre]&lt;BR /&gt;
  &lt;BR /&gt;
data firstbyname;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name;&lt;BR /&gt;
  if first.name then output; &lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
proc print data=firstbyname;&lt;BR /&gt;
title 'After -- choosing first.name ONLY';&lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
data firstbyname_occ;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name occasion;&lt;BR /&gt;
  if first.occasion then output; &lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
proc print data=firstbyname_occ;&lt;BR /&gt;
title 'After -- choosing first.occ';&lt;BR /&gt;
title2 'Because BY is NAME and OCCASION, then';&lt;BR /&gt;
title3 'will get the first of the unique name/occasion combo';&lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
proc sort data=gifts out=gifts;&lt;BR /&gt;
by name idea;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
   &lt;BR /&gt;
data firstbyname_idea;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name idea;&lt;BR /&gt;
  if first.idea then output; &lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
proc print data=firstbyname_idea;&lt;BR /&gt;
title 'After -- choosing first.idea';&lt;BR /&gt;
title2 'Because BY is NAME and IDEA, then';&lt;BR /&gt;
title3 'will get the first of the unique name/idea combo';&lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
title;&lt;BR /&gt;
  &lt;BR /&gt;
[/pre]</description>
    <pubDate>Fri, 18 May 2007 20:49:52 GMT</pubDate>
    <dc:creator>Cynthia_sas</dc:creator>
    <dc:date>2007-05-18T20:49:52Z</dc:date>
    <item>
      <title>How to check a record against a previous record</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3150#M1002</link>
      <description>I need to , in the query portion of a query in a stored process in EG, be able to compare a current record agains a previous record.&lt;BR /&gt;
&lt;BR /&gt;
i.e., If DataInField1 NE LAST.DataInField1 then ........&lt;BR /&gt;
&lt;BR /&gt;
Does anyone have an idea or two that you'd be willing to share?  Thanks!</description>
      <pubDate>Fri, 18 May 2007 19:46:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3150#M1002</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2007-05-18T19:46:00Z</dc:date>
    </item>
    <item>
      <title>Re: How to check a record against a previous record</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3151#M1003</link>
      <description>Hi,&lt;BR /&gt;
  Again, I'd find it helpful to understand the rest of the processing you need to do. However, in theory, let's look at how BY GROUP processing works within a SAS data step program (and put aside SQL query syntax right now). Consider this data which is a file of gift ideas, multiple ideas per person. Silly data, I know, but it helps to visualize how things work:&lt;BR /&gt;
[pre]&lt;BR /&gt;
data gifts;&lt;BR /&gt;
length name $8 occasion $12 idea $8 amt 8; &lt;BR /&gt;
infile datalines;&lt;BR /&gt;
input name occasion idea amt;&lt;BR /&gt;
return;&lt;BR /&gt;
datalines;&lt;BR /&gt;
cynthia  anniversary jewelry  50&lt;BR /&gt;
cynthia  anniversary tunes    25&lt;BR /&gt;
cynthia  birthday    books    50&lt;BR /&gt;
cynthia  birthday    jewelry  75&lt;BR /&gt;
cynthia  christmas   clothes 100&lt;BR /&gt;
cynthia  christmas   jewelry  75&lt;BR /&gt;
lee      anniversary bikegear 50&lt;BR /&gt;
lee      anniversary books    50&lt;BR /&gt;
lee      any         bikegear 50&lt;BR /&gt;
lee      any         tunes    50&lt;BR /&gt;
lee      birthday    tunes    50&lt;BR /&gt;
lee      birthday    books    50&lt;BR /&gt;
lee      christmas   books   100&lt;BR /&gt;
lee      christmas   computer 50&lt;BR /&gt;
sarah    any         tunes    25&lt;BR /&gt;
sarah    any         money    50&lt;BR /&gt;
sarah    birthday    jewelry  50&lt;BR /&gt;
sarah    birthday    giftcard 50&lt;BR /&gt;
sarah    christmas   tunes    25&lt;BR /&gt;
sarah    christmas   jewelry  50&lt;BR /&gt;
sarah    graduation  books   100&lt;BR /&gt;
sarah    graduation  money   100&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
     &lt;BR /&gt;
ods listing;&lt;BR /&gt;
proc print data=gifts;&lt;BR /&gt;
title 'Before - All Rows';&lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
Now, let's say I want to do -something- with the gift file. I can "turn on" by group processing for the NAME column and then check the values of FIRST.NAME and LAST.NAME automatic variables that get created when I use the BY statement in a DATA step program:&lt;BR /&gt;
[pre]&lt;BR /&gt;
** show what first.byvar and last.byvar are;&lt;BR /&gt;
data ckbyvar;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name;&lt;BR /&gt;
  firstflag = first.name;&lt;BR /&gt;
  lastflag = last.name;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc print data=ckbyvar;&lt;BR /&gt;
title 'What First.byvar and Last.byvar are for each obs';&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
[/pre]&lt;BR /&gt;
    &lt;BR /&gt;
And this is the output. Note the changing values of the firstflag column and the lastflag column. This means that you KNOW that NAME &lt;BR /&gt;
is the same (or different) for every OBS by testing the values for first.name and last.name. &lt;BR /&gt;
For example, when first.name=1 then I know that this name is either different from the previous name or is the first name in the file (which I can test with _n_=1). &lt;BR /&gt;
Usually, these variables are not output to a dataset -- which is why I had to capture them to other named variables.&lt;BR /&gt;
   &lt;BR /&gt;
[pre]&lt;BR /&gt;
     What First.byvar and Last.byvar are for each obs&lt;BR /&gt;
&lt;BR /&gt;
Obs  name     occasion      idea      amt  firstflag  lastflag&lt;BR /&gt;
 1   cynthia  anniversary   jewelry    50      1          0&lt;BR /&gt;
 2   cynthia  anniversary   tunes      25      0          0&lt;BR /&gt;
 3   cynthia  birthday      books      50      0          0&lt;BR /&gt;
 4   cynthia  birthday      jewelry    75      0          0&lt;BR /&gt;
 5   cynthia  christmas     clothes   100      0          0&lt;BR /&gt;
 6   cynthia  christmas     jewelry    75      0          1&lt;BR /&gt;
 7   lee      anniversary   bikegear   50      1          0&lt;BR /&gt;
 8   lee      anniversary   books      50      0          0&lt;BR /&gt;
 9   lee      any           bikegear   50      0          0&lt;BR /&gt;
10   lee      any           tunes      50      0          0&lt;BR /&gt;
11   lee      birthday      books      50      0          0&lt;BR /&gt;
12   lee      birthday      tunes      50      0          0&lt;BR /&gt;
13   lee      christmas     books     100      0          0&lt;BR /&gt;
14   lee      christmas     computer   50      0          1&lt;BR /&gt;
15   sarah    any           money      50      1          0&lt;BR /&gt;
16   sarah    any           tunes      25      0          0&lt;BR /&gt;
17   sarah    birthday      giftcard   50      0          0&lt;BR /&gt;
18   sarah    birthday      jewelry    50      0          0&lt;BR /&gt;
19   sarah    christmas     jewelry    50      0          0&lt;BR /&gt;
20   sarah    christmas     tunes      25      0          0&lt;BR /&gt;
21   sarah    graduation    books     100      0          0&lt;BR /&gt;
22   sarah    graduation    money     100      0          1&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
Then, if  I want to just COUNT the "non-any" ideas per person (for some reason, I don't want to do this with a procedure), then I could do this:&lt;BR /&gt;
[pre]&lt;BR /&gt;
** count number of ideas per person;&lt;BR /&gt;
data cntidea(keep=name totidea);&lt;BR /&gt;
  retain totidea;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name;&lt;BR /&gt;
  if first.name then totidea = 0;&lt;BR /&gt;
  if occasion ne 'any' then totidea + 1;&lt;BR /&gt;
  if last.name then output;&lt;BR /&gt;
run;&lt;BR /&gt;
         &lt;BR /&gt;
proc print data=cntidea;&lt;BR /&gt;
title 'ideas per name';&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
 &lt;BR /&gt;
But, if what you want to do is ALWAYS compare a value on this record with the value on the previous record (without regard to by group processing), then you can do something like this:&lt;BR /&gt;
 &lt;BR /&gt;
[pre]&lt;BR /&gt;
** just test same or different name;&lt;BR /&gt;
data testname;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  retain prevname;&lt;BR /&gt;
  if _n_ = 1 then do; &lt;BR /&gt;
    prevname = name;&lt;BR /&gt;
    flag = 'start';&lt;BR /&gt;
  end;&lt;BR /&gt;
  else if _n_ gt 1 then do;&lt;BR /&gt;
  if name = prevname then flag='same';&lt;BR /&gt;
     else do; &lt;BR /&gt;
       flag = 'diff'; &lt;BR /&gt;
       prevname = name; &lt;BR /&gt;
     end;&lt;BR /&gt;
  end;&lt;BR /&gt;
run;&lt;BR /&gt;
                &lt;BR /&gt;
proc print data=testname;&lt;BR /&gt;
 title 'set a single flag';&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
 &lt;BR /&gt;
This sets a single flag whose values are either "start", "same" or "diff" depending on whether the name is the same as the name on the last record or obs.&lt;BR /&gt;
  &lt;BR /&gt;
And, last, but not least, you could use the LAG function:&lt;BR /&gt;
[pre]&lt;BR /&gt;
** using LAG;&lt;BR /&gt;
data uselag;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  prevname = lag(name);&lt;BR /&gt;
  if _n_ = 1 then prevname = name;&lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
proc print data=uselag;&lt;BR /&gt;
   title 'Lag Output';&lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
[/pre]&lt;BR /&gt;
 &lt;BR /&gt;
Play around with these examples and the ones below and see whether any of them give you some ideas of how to do your testing.&lt;BR /&gt;
cynthia&lt;BR /&gt;
&lt;BR /&gt;
***more examples of BY group processing&lt;BR /&gt;
[pre]&lt;BR /&gt;
  &lt;BR /&gt;
data firstbyname;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name;&lt;BR /&gt;
  if first.name then output; &lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
proc print data=firstbyname;&lt;BR /&gt;
title 'After -- choosing first.name ONLY';&lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
data firstbyname_occ;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name occasion;&lt;BR /&gt;
  if first.occasion then output; &lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
proc print data=firstbyname_occ;&lt;BR /&gt;
title 'After -- choosing first.occ';&lt;BR /&gt;
title2 'Because BY is NAME and OCCASION, then';&lt;BR /&gt;
title3 'will get the first of the unique name/occasion combo';&lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
proc sort data=gifts out=gifts;&lt;BR /&gt;
by name idea;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
   &lt;BR /&gt;
data firstbyname_idea;&lt;BR /&gt;
  set gifts;&lt;BR /&gt;
  by name idea;&lt;BR /&gt;
  if first.idea then output; &lt;BR /&gt;
run;&lt;BR /&gt;
   &lt;BR /&gt;
proc print data=firstbyname_idea;&lt;BR /&gt;
title 'After -- choosing first.idea';&lt;BR /&gt;
title2 'Because BY is NAME and IDEA, then';&lt;BR /&gt;
title3 'will get the first of the unique name/idea combo';&lt;BR /&gt;
run;&lt;BR /&gt;
  &lt;BR /&gt;
title;&lt;BR /&gt;
  &lt;BR /&gt;
[/pre]</description>
      <pubDate>Fri, 18 May 2007 20:49:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3151#M1003</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2007-05-18T20:49:52Z</dc:date>
    </item>
    <item>
      <title>Re: How to check a record against a previous record</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3152#M1004</link>
      <description>!!!  How do you type so much so fast????  Thank you again and again for your knowledge and willingness to share with others.  I really appreciate it.  I'll digest what you wrote over the weekend.&lt;BR /&gt;
&lt;BR /&gt;
Have a good weekend and thanks!</description>
      <pubDate>Fri, 18 May 2007 21:56:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3152#M1004</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2007-05-18T21:56:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to check a record against a previous record</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3153#M1005</link>
      <description>Hi:&lt;BR /&gt;
  I only have to type the explanation -- I have the code in sample files that come  from years of being an instructor. &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt; Although I -do- type fast, I don't type THAT fast.&lt;BR /&gt;
cynthia</description>
      <pubDate>Sun, 20 May 2007 16:33:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/How-to-check-a-record-against-a-previous-record/m-p/3153#M1005</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2007-05-20T16:33:29Z</dc:date>
    </item>
  </channel>
</rss>

