<?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: searching for the next not repetitive date in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723142#M80241</link>
    <description>&lt;P&gt;data want;&lt;BR /&gt;input id$ evnt_d$21.;&lt;BR /&gt;cards;&lt;BR /&gt;A 05Mar2020 13:02:00&lt;BR /&gt;B 06Mar2020 13:45:11&lt;BR /&gt;B 08Mar2020 13:15:42&lt;BR /&gt;B 14Mar2020 12:36:22&lt;BR /&gt;A 16Mar2020 14:26:17&lt;BR /&gt;A 19Mar2020 14:01:21&lt;BR /&gt;A 20Mar2020 18:01:21&lt;BR /&gt;B 23Mar2020 8:56:01&lt;BR /&gt;B 27Mar2020 8:56:40&lt;BR /&gt;A 28Mar2020 10:42:16&lt;BR /&gt;B 29Mar2020 10:42:16&lt;BR /&gt;;&lt;BR /&gt;run;&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;P&gt;&lt;SPAN&gt;Expected result:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;A&amp;nbsp; &amp;nbsp; 05Mar2020 13:02:00&amp;nbsp; &amp;nbsp; 06Mar2020 13:45:11&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 16Mar2020 14:26:17&amp;nbsp; &amp;nbsp; 23Mar2020 8:56:01&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 19Mar2020 14:01:21&amp;nbsp; &amp;nbsp; 27Mar2020 8:56:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 20Mar2020 18:01:21&amp;nbsp; &amp;nbsp; 29Mar2020 10:42:16&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 28Mar2020 10:42:16&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 03 Mar 2021 14:20:27 GMT</pubDate>
    <dc:creator>J_J_J</dc:creator>
    <dc:date>2021-03-03T14:20:27Z</dc:date>
    <item>
      <title>searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723108#M80237</link>
      <description>&lt;P&gt;Hi guys!&lt;/P&gt;
&lt;P&gt;Help me please to solve the problem. I try to find score. ID=A gives 1 point, ID=B minus 1 point, but&amp;nbsp;it should be in chronological order, like in attached file. How is it possible to solve it? The result for code 111 should be 1 point.&lt;/P&gt;
&lt;P&gt;Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Mar 2021 10:43:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723108#M80237</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-03T10:43:30Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723123#M80238</link>
      <description>&lt;P&gt;Please post the data you have in usable form (a datastep using datalines, nothing else) and show the expected result.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Mar 2021 11:33:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723123#M80238</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2021-03-03T11:33:57Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723137#M80239</link>
      <description>&lt;P&gt;Data:&lt;/P&gt;
&lt;P&gt;data want;1 &lt;BR /&gt;input id evnt_d;2&lt;BR /&gt;datalines; 3&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 05Mar2020 13:02:00&lt;BR /&gt;B&amp;nbsp; &amp;nbsp; 06Mar2020 13:45:11&lt;BR /&gt;B&amp;nbsp; &amp;nbsp; 08Mar2020 13:15:42&lt;BR /&gt;B&amp;nbsp; &amp;nbsp; 14Mar2020 12:36:22&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 16Mar2020 14:26:17&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 19Mar2020 14:01:21&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 20Mar2020 18:01:21&lt;BR /&gt;B&amp;nbsp; &amp;nbsp; 23Mar2020 8:56:01&lt;BR /&gt;B&amp;nbsp; &amp;nbsp; 27Mar2020 8:56:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 28Mar2020 10:42:16&lt;BR /&gt;B&amp;nbsp; &amp;nbsp; 29Mar2020 10:42:16&lt;/P&gt;
&lt;P&gt;; 3&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Expected result:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;A&amp;nbsp; &amp;nbsp; 05Mar2020 13:02:00&amp;nbsp; &amp;nbsp; 06Mar2020 13:45:11&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 16Mar2020 14:26:17&amp;nbsp; &amp;nbsp; 23Mar2020 8:56:01&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 19Mar2020 14:01:21&amp;nbsp; &amp;nbsp; 27Mar2020 8:56:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 20Mar2020 18:01:21&amp;nbsp; &amp;nbsp; 29Mar2020 10:42:16&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 28Mar2020 10:42:16 &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Mar 2021 13:35:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723137#M80239</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-03T13:35:05Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723139#M80240</link>
      <description>&lt;P&gt;Please fix your data step, so that it runs without ERROR messages and creates the dataset you have.&lt;/P&gt;
&lt;P&gt;Log from your code:&lt;/P&gt;
&lt;PRE&gt; 74         data want;
 75         input id evnt_d;
 76         datalines;
 
 NOTE: Invalid data for id in line 77 1-1.
 NOTE: Invalid data for evnt_d in line 77 6-14.
 REGEL:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0                     
 77         A    05Mar2020 13:02:00
 id=. evnt_d=. _ERROR_=1 _N_=1
 NOTE: Invalid data for id in line 78 1-1.
 NOTE: Invalid data for evnt_d in line 78 6-14.
 78         B    06Mar2020 13:45:11
 id=. evnt_d=. _ERROR_=1 _N_=2
 NOTE: Invalid data for id in line 79 1-1.
 NOTE: Invalid data for evnt_d in line 79 6-14.
 79         B    08Mar2020 13:15:42
 id=. evnt_d=. _ERROR_=1 _N_=3
 NOTE: Invalid data for id in line 80 1-1.
 NOTE: Invalid data for evnt_d in line 80 6-14.
 80         B    14Mar2020 12:36:22
 id=. evnt_d=. _ERROR_=1 _N_=4
 NOTE: Invalid data for id in line 81 1-1.
 NOTE: Invalid data for evnt_d in line 81 6-14.
 81         A    16Mar2020 14:26:17
 id=. evnt_d=. _ERROR_=1 _N_=5
 NOTE: Invalid data for id in line 82 1-1.
 NOTE: Invalid data for evnt_d in line 82 6-14.
 82         A    19Mar2020 14:01:21
 id=. evnt_d=. _ERROR_=1 _N_=6
 NOTE: Invalid data for id in line 83 1-1.
 NOTE: Invalid data for evnt_d in line 83 6-14.
 83         A    20Mar2020 18:01:21
 id=. evnt_d=. _ERROR_=1 _N_=7
 NOTE: Invalid data for id in line 84 1-1.
 NOTE: Invalid data for evnt_d in line 84 6-14.
 84         B    23Mar2020 8:56:01
 id=. evnt_d=. _ERROR_=1 _N_=8
 NOTE: Invalid data for id in line 85 1-1.
 NOTE: Invalid data for evnt_d in line 85 6-14.
 85         B    27Mar2020 8:56:40
 id=. evnt_d=. _ERROR_=1 _N_=9
 NOTE: Invalid data for id in line 86 1-1.
 NOTE: Invalid data for evnt_d in line 86 6-14.
 86         A    28Mar2020 10:42:16
 id=. evnt_d=. _ERROR_=1 _N_=10
 NOTE: Invalid data for id in line 87 1-1.
 NOTE: Invalid data for evnt_d in line 87 6-14.
 87         B    29Mar2020 10:42:16
 id=. evnt_d=. _ERROR_=1 _N_=11
&lt;/PRE&gt;</description>
      <pubDate>Wed, 03 Mar 2021 13:42:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723139#M80240</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2021-03-03T13:42:57Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723142#M80241</link>
      <description>&lt;P&gt;data want;&lt;BR /&gt;input id$ evnt_d$21.;&lt;BR /&gt;cards;&lt;BR /&gt;A 05Mar2020 13:02:00&lt;BR /&gt;B 06Mar2020 13:45:11&lt;BR /&gt;B 08Mar2020 13:15:42&lt;BR /&gt;B 14Mar2020 12:36:22&lt;BR /&gt;A 16Mar2020 14:26:17&lt;BR /&gt;A 19Mar2020 14:01:21&lt;BR /&gt;A 20Mar2020 18:01:21&lt;BR /&gt;B 23Mar2020 8:56:01&lt;BR /&gt;B 27Mar2020 8:56:40&lt;BR /&gt;A 28Mar2020 10:42:16&lt;BR /&gt;B 29Mar2020 10:42:16&lt;BR /&gt;;&lt;BR /&gt;run;&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;P&gt;&lt;SPAN&gt;Expected result:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;A&amp;nbsp; &amp;nbsp; 05Mar2020 13:02:00&amp;nbsp; &amp;nbsp; 06Mar2020 13:45:11&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 16Mar2020 14:26:17&amp;nbsp; &amp;nbsp; 23Mar2020 8:56:01&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 19Mar2020 14:01:21&amp;nbsp; &amp;nbsp; 27Mar2020 8:56:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 20Mar2020 18:01:21&amp;nbsp; &amp;nbsp; 29Mar2020 10:42:16&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 28Mar2020 10:42:16&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Mar 2021 14:20:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723142#M80241</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-03T14:20:27Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723365#M80242</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/233875"&gt;@J_J_J&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;data want;&lt;BR /&gt;input id$ evnt_d$21.;&lt;BR /&gt;cards;&lt;BR /&gt;A 05Mar2020 13:02:00&lt;BR /&gt;B 06Mar2020 13:45:11&lt;BR /&gt;B 08Mar2020 13:15:42&lt;BR /&gt;B 14Mar2020 12:36:22&lt;BR /&gt;A 16Mar2020 14:26:17&lt;BR /&gt;A 19Mar2020 14:01:21&lt;BR /&gt;A 20Mar2020 18:01:21&lt;BR /&gt;B 23Mar2020 8:56:01&lt;BR /&gt;B 27Mar2020 8:56:40&lt;BR /&gt;A 28Mar2020 10:42:16&lt;BR /&gt;B 29Mar2020 10:42:16&lt;BR /&gt;;&lt;BR /&gt;run;&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;P&gt;&lt;SPAN&gt;Expected result:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;A&amp;nbsp; &amp;nbsp; 05Mar2020 13:02:00&amp;nbsp; &amp;nbsp; 06Mar2020 13:45:11&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 16Mar2020 14:26:17&amp;nbsp; &amp;nbsp; 23Mar2020 8:56:01&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 19Mar2020 14:01:21&amp;nbsp; &amp;nbsp; 27Mar2020 8:56:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 20Mar2020 18:01:21&amp;nbsp; &amp;nbsp; 29Mar2020 10:42:16&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 28Mar2020 10:42:16&lt;/SPAN&gt;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Sorry, but i can't see how the logic you have described in the starting message could create the dataset you want.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Mar 2021 05:53:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723365#M80242</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2021-03-04T05:53:01Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723368#M80243</link>
      <description>&lt;P&gt;For each A record, you want the closest following B record that has not already been paired with an A record:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can do this be using two SET statements:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;A SET just for A's&lt;/LI&gt;
&lt;LI&gt;A SET just for B's that read records until the B datetime stamp is greater than the A datetime stamp.&amp;nbsp; Since the SET statement will read no B record more than once, you won't get the same B assigned to multiple A's:&lt;/LI&gt;
&lt;/OL&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input id $ dtstamp datetime18.;
format dtstamp datetime18. ;
cards;
A 05Mar2020:13:02:00
B 06Mar2020:13:45:11
B 08Mar2020:13:15:42
B 14Mar2020:12:36:22
A 16Mar2020:14:26:17
A 19Mar2020:14:01:21
A 20Mar2020:18:01:21
B 23Mar2020:8:56:01
B 27Mar2020:8:56:40
A 28Mar2020:10:42:16
B 29Mar2020:10:42:16
run;

data want (drop=_:);
  set have (where=(id='A') rename=(dtstamp=dtstampa));
  do until (dtstampb&amp;gt;dtstampa or end_of_b);
    if end_of_b=0 then set have (where=(_id='B') rename=(id=_id dtstamp=dtstampb)) end=end_of_b;
    else dtstampb=.;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note the SET statement for _ID='B' uses an "if end_of_b=0" test to make sure that the data step does not prematurely stop because all the B records have been exhausted.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As to the "rename" parameters.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;You have to give distinct names to the datetime stamps for A records and B records, since they must co-exist in the same output record&lt;/LI&gt;
&lt;LI&gt;You have to rename ID to _ID for reading B records.&amp;nbsp; Otherwise the output records will have the right datetime stamps but will all have ID=B (not&amp;nbsp;&lt;STRIKE&gt;A)&lt;/STRIKE&gt;.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edited note:&amp;nbsp; This program assumes the data are sorted by DTSTAMP.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Mar 2021 16:02:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723368#M80243</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2021-03-04T16:02:51Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723370#M80244</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I'll try to explain other way. How to select next latest than group_id date from table B for each group_id from table A,&amp;nbsp;provided that this date wasn't used for the previous group? Group_id and&amp;nbsp;evnt_d&amp;nbsp; are in&amp;nbsp;chronological order.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;data A;&lt;BR /&gt;input group_id$21.;&lt;BR /&gt;cards;&lt;BR /&gt;05Mar2020 13:02:00&lt;BR /&gt;16Mar2020 14:26:17&lt;BR /&gt;19Mar2020 14:01:21&lt;BR /&gt;20Mar2020 18:01:21&lt;BR /&gt;28Mar2020 10:42:16&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;data B;&lt;BR /&gt;input evnt_d$21.;&lt;BR /&gt;cards;&lt;BR /&gt;B 06Mar2020 13:45:11&lt;BR /&gt;B 08Mar2020 13:15:42&lt;BR /&gt;B 14Mar2020 12:36:22&lt;BR /&gt;B 23Mar2020 8:56:01&lt;BR /&gt;B 27Mar2020 8:56:40&lt;BR /&gt;B 29Mar2020 10:42:16&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Expected result:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;A&amp;nbsp; &amp;nbsp; 05Mar2020 13:02:00&amp;nbsp; &amp;nbsp; 06Mar2020 13:45:11&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 16Mar2020 14:26:17&amp;nbsp; &amp;nbsp; 23Mar2020 8:56:01&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 19Mar2020 14:01:21&amp;nbsp; &amp;nbsp; 27Mar2020 8:56:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 20Mar2020 18:01:21&amp;nbsp; &amp;nbsp; 29Mar2020 10:42:16&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 28Mar2020 10:42:16&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Mar 2021 06:36:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723370#M80244</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-04T06:36:28Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723373#M80245</link>
      <description>&lt;P&gt;&lt;A class="trigger-hovercard" href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461" target="_blank"&gt;mkeintz&lt;/A&gt;, thank you very much!&lt;/P&gt;</description>
      <pubDate>Thu, 04 Mar 2021 06:51:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723373#M80245</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-04T06:51:14Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723450#M80248</link>
      <description>&lt;P&gt;I like this question.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input id $ dtstamp datetime18.;
format dtstamp datetime18. ;
cards;
A 05Mar2020:13:02:00
B 06Mar2020:13:45:11
B 08Mar2020:13:15:42
B 14Mar2020:12:36:22
A 16Mar2020:14:26:17
A 19Mar2020:14:01:21
A 20Mar2020:18:01:21
B 23Mar2020:8:56:01
B 27Mar2020:8:56:40
A 28Mar2020:10:42:16
B 29Mar2020:10:42:16
;
run;
data a b;
 set have;
 if id='A' then output a;
  else output b;
run;
data want;
 if _n_=1 then do;
   if 0 then set b(rename=(dtstamp=n_dtstamp));
   declare hash h(dataset:'b(rename=(dtstamp=n_dtstamp))',ordered:'a');
   declare hiter hi('h');
   h.definekey('n_dtstamp');
   h.definedata('n_dtstamp');
   h.definedone();
 end;
set a;
rc=hi.first();
do while(rc=0); 
  if dtstamp&amp;lt;n_dtstamp then do;want=n_dtstamp; leave;end;
  rc=hi.next();
end; 
if want then do;
rc=hi.next();
h.remove(key:want);
end;
drop n_dtstamp rc ;
format want datetime.;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 04 Mar 2021 13:42:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723450#M80248</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2021-03-04T13:42:40Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723831#M80259</link>
      <description>&lt;P&gt;Could you help me to do it with a key please?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input id $ key $ date datetime18.;&lt;BR /&gt;format date datetime18. ;&lt;BR /&gt;cards;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;ID key date&lt;BR /&gt;A 4129 21Jan2021 15:31:53&lt;BR /&gt;A 5951 21Jan2021 15:33:13&lt;BR /&gt;A 1093 27Jan2021 13:04:08&lt;BR /&gt;A 5794 04Feb2021 16:25:07&lt;BR /&gt;A 6095 04Feb2021 16:26:41&lt;BR /&gt;B 5794 12Feb2021 14:55:57&lt;BR /&gt;B 6095 15Feb2021 8:19:39&lt;BR /&gt;A 1031 15Feb2021 14:08:23&lt;BR /&gt;A 2166 26Feb2021 11:44:59&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;Expected result:&lt;BR /&gt;key&amp;nbsp; &amp;nbsp; datea&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dateb&lt;BR /&gt;4129 21Jan2021 15:31:53 &lt;BR /&gt;5951&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;21Jan2021 15:33:13&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;1093&amp;nbsp; 27Jan2021 13:04:08 &lt;BR /&gt;5794&amp;nbsp; 04Feb2021 16:25:07 12Feb2021 14:55:57&lt;BR /&gt;6095&amp;nbsp; 04Feb2021 16:26:41 15Feb2021 8:19:39&lt;BR /&gt;1031&amp;nbsp; 15Feb2021 14:08:23 &lt;BR /&gt;2166&amp;nbsp; 26Feb2021 11:44:59&lt;/P&gt;</description>
      <pubDate>Fri, 05 Mar 2021 12:31:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723831#M80259</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-05T12:31:27Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723850#M80260</link>
      <description>&lt;P&gt;So you just simply merge it by KEY ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; 

data have;
input id $ key $ date datetime18.;
format date datetime18. ;
cards;
A 4129 21Jan2021 15:31:53
A 5951 21Jan2021 15:33:13
A 1093 27Jan2021 13:04:08
A 5794 04Feb2021 16:25:07
A 6095 04Feb2021 16:26:41
B 5794 12Feb2021 14:55:57
B 6095 15Feb2021 8:19:39
A 1031 15Feb2021 14:08:23
A 2166 26Feb2021 11:44:59
;
run;

data a b;
 set have;
 if id='A' then output a;
  else output b;
run;
data want;
 if _n_=1 then do;
   if 0 then set b(rename=(date=n_dtstamp));
   declare hash h(dataset:'b(rename=(date=n_dtstamp))');
   h.definekey('key');
   h.definedata('n_dtstamp');
   h.definedone();
 end;
set a;
call missing(n_dtstamp);
rc=h.find();
drop rc;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 05 Mar 2021 12:34:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/723850#M80260</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2021-03-05T12:34:57Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/724463#M80272</link>
      <description>&lt;P&gt;&lt;A class="trigger-hovercard" href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408" target="_blank"&gt;Ksharp&lt;/A&gt;, something goes wrong with this code.&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input id $ key $ date datetime18.;&lt;BR /&gt;format date datetime18. ;&lt;BR /&gt;cards;&lt;BR /&gt;A 11111111 31Oct2019 10:50:42&lt;BR /&gt;A 22222222 31Oct2019 10:51:17&lt;BR /&gt;A 22222222 02Mar2020 15:12:33&lt;BR /&gt;B 33333333 16Mar2020 12:23:46&lt;BR /&gt;A 44444444 25Mar2020 13:02:00&lt;BR /&gt;A 55555555 27Mar2020 13:20:07&lt;BR /&gt;A 66666666 27Mar2020 13:35:35&lt;BR /&gt;B 22222222 30Mar2020 10:49:35&lt;BR /&gt;A 33333333 30Apr2020 16:09:14&lt;BR /&gt;A 22222222 12Jun2020 15:32:04&lt;BR /&gt;A 66666666 12Jun2020 16:42:03&lt;BR /&gt;A 33333333 19Aug2020 9:16:55&lt;BR /&gt;A 33333333 18Sep2020 9:40:37&lt;BR /&gt;B 44444444 01Oct2020 8:56:40&lt;BR /&gt;A 11111111 12Oct2020 12:32:40&lt;BR /&gt;A 11111111 09Nov2020 14:19:16&lt;BR /&gt;B 33333333 17Nov2020 9:31:58&lt;BR /&gt;B 66666666 20Nov2020 14:26:29&lt;BR /&gt;A 66666666 26Feb2021 11:44:59&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;data a b;&lt;BR /&gt;set have;&lt;BR /&gt;if id='A' then output a;&lt;BR /&gt;else output b;&lt;BR /&gt;run;&lt;BR /&gt;data want;&lt;BR /&gt;if _n_=1 then do;&lt;BR /&gt;if 0 then set b(rename=(date=n_dtstamp));&lt;BR /&gt;declare hash h(dataset:'b(rename=(date=n_dtstamp))');&lt;BR /&gt;h.definekey('key');&lt;BR /&gt;h.definedata('n_dtstamp');&lt;BR /&gt;h.definedone();&lt;BR /&gt;end;&lt;BR /&gt;set a;&lt;BR /&gt;call missing(n_dtstamp);&lt;BR /&gt;rc=h.find();&lt;BR /&gt;drop rc;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Expected result is:&lt;/P&gt;
&lt;P&gt;id&amp;nbsp; &amp;nbsp; key&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; n_dtstamp&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 11111111&amp;nbsp; &amp;nbsp; &amp;nbsp; 31Oct2019 10:50:42 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 22222222&amp;nbsp; &amp;nbsp; 31Oct2019 10:51:17&amp;nbsp; &amp;nbsp; &amp;nbsp; 30Mar2020 10:49:35&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 22222222&amp;nbsp; &amp;nbsp; 02Mar2020 15:12:33 &lt;BR /&gt;B&amp;nbsp; &amp;nbsp; 33333333&amp;nbsp; &amp;nbsp;16Mar2020 12:23:46 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 44444444&amp;nbsp; &amp;nbsp; 25Mar2020 13:02:00&amp;nbsp; &amp;nbsp; &amp;nbsp;01Oct2020 8:56:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 55555555&amp;nbsp; &amp;nbsp; 27Mar2020 13:20:07 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 66666666&amp;nbsp; &amp;nbsp; 27Mar2020 13:35:35&amp;nbsp; &amp;nbsp; &amp;nbsp;20Nov2020 14:26:29&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 33333333&amp;nbsp; &amp;nbsp; 30Apr2020 16:09:14&amp;nbsp; &amp;nbsp; &amp;nbsp;17Nov2020 9:31:58&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 22222222&amp;nbsp; &amp;nbsp; 12Jun2020 15:32:04 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 66666666&amp;nbsp; &amp;nbsp; 12Jun2020 16:42:03 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 33333333&amp;nbsp; &amp;nbsp; 19Aug2020 9:16:55 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 33333333&amp;nbsp; &amp;nbsp; 18Sep2020 9:40:37 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 11111111&amp;nbsp; &amp;nbsp; &amp;nbsp;12Oct2020 12:32:40 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 11111111&amp;nbsp; &amp;nbsp; &amp;nbsp;09Nov2020 14:19:16 &lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 66666666&amp;nbsp; &amp;nbsp; 26Feb2021 11:44:59&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But I get:&lt;/P&gt;
&lt;P&gt;id&amp;nbsp; &amp;nbsp; key&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;n_dtstamp&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; date&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 11111111&amp;nbsp; 31Oct2019 10:50:42&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 22222222 30Mar2020 10:49:35&amp;nbsp; &amp;nbsp; 31Oct2019 10:51:17&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 22222222 30Mar2020 10:49:35&amp;nbsp; &amp;nbsp; 02Mar2020 15:12:33&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 44444444 01Oct2020 8:56:40&amp;nbsp; &amp;nbsp; &amp;nbsp; 25Mar2020 13:02:00&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 55555555 27Mar2020 13:20:07&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 66666666 20Nov2020 14:26:29&amp;nbsp; &amp;nbsp; 27Mar2020 13:35:35&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 33333333 16Mar2020 12:23:46&amp;nbsp; &amp;nbsp; 30Apr2020 16:09:14&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 22222222 30Mar2020 10:49:35&amp;nbsp; &amp;nbsp; 12Jun2020 15:32:04&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 66666666 20Nov2020 14:26:29&amp;nbsp; &amp;nbsp; 12Jun2020 16:42:03&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 33333333 16Mar2020 12:23:46&amp;nbsp; &amp;nbsp; 19Aug2020 9:16:55&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 33333333 16Mar2020 12:23:46&amp;nbsp; &amp;nbsp; 18Sep2020 9:40:37&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 11111111 12Oct2020 12:32:40&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 11111111 09Nov2020 14:19:16&lt;BR /&gt;A&amp;nbsp; &amp;nbsp; 66666666 20Nov2020 14:26:29&amp;nbsp; &amp;nbsp; 26Feb2021 11:44:59&lt;/P&gt;</description>
      <pubDate>Mon, 08 Mar 2021 11:28:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/724463#M80272</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-08T11:28:23Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/724475#M80273</link>
      <description>&lt;P&gt;OK. You want this one ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
data have;
input id $ key $ date datetime18.;
format date datetime18. ;
cards;
A 11111111 31Oct2019 10:50:42
A 22222222 31Oct2019 10:51:17
A 22222222 02Mar2020 15:12:33
B 33333333 16Mar2020 12:23:46
A 44444444 25Mar2020 13:02:00
A 55555555 27Mar2020 13:20:07
A 66666666 27Mar2020 13:35:35
B 22222222 30Mar2020 10:49:35
A 33333333 30Apr2020 16:09:14
A 22222222 12Jun2020 15:32:04
A 66666666 12Jun2020 16:42:03
A 33333333 19Aug2020 9:16:55
A 33333333 18Sep2020 9:40:37
B 44444444 01Oct2020 8:56:40
A 11111111 12Oct2020 12:32:40
A 11111111 09Nov2020 14:19:16
B 33333333 17Nov2020 9:31:58
B 66666666 20Nov2020 14:26:29
A 66666666 26Feb2021 11:44:59
;run;
data a b;
 set have;
 if id='A' then output a;
  else output b;
run;
data want;
 if _n_=1 then do;
   if 0 then set b(rename=(date=n_dtstamp));
   declare hash h(dataset:'b(rename=(date=n_dtstamp))',multidata:'y');
   h.definekey('key');
   h.definedata('n_dtstamp');
   h.definedone();
 end;
set a;
max=999999999;
rc=h.find();
do while(rc=0); 
  if date&amp;lt;n_dtstamp and (n_dtstamp-date)&amp;lt;max then do; want=n_dtstamp;max=(n_dtstamp-date);end;
  rc=h.find_next();
end; 

if want then do;
rc=h.find();
do while(rc=0); 
  if want=n_dtstamp then h.removedup();
  rc=h.find_next();
end; 
end;
drop n_dtstamp rc max;
format want datetime.;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Mar 2021 12:02:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/724475#M80273</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2021-03-08T12:02:56Z</dc:date>
    </item>
    <item>
      <title>Re: searching for the next not repetitive date</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/724476#M80274</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="trigger-hovercard" href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408" target="_blank"&gt;Ksharp&lt;/A&gt;, thank you very much!&lt;span class="lia-unicode-emoji" title=":thumbs_up:"&gt;👍&lt;/span&gt; It works!&lt;/P&gt;</description>
      <pubDate>Mon, 08 Mar 2021 12:13:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/searching-for-the-next-not-repetitive-date/m-p/724476#M80274</guid>
      <dc:creator>J_J_J</dc:creator>
      <dc:date>2021-03-08T12:13:55Z</dc:date>
    </item>
  </channel>
</rss>

