<?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 How to get latest record in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-latest-record/m-p/675434#M203523</link>
    <description>&lt;P&gt;Hi ,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have the following data&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data results;&lt;BR /&gt;input id $ test $ dt date9. dtm datetime20. vdt date9. vdtm datetime20. ;&lt;BR /&gt;cards;&lt;BR /&gt;001 MAT 15APR2019 15APR2019:10:05:00 05MAR2019 05MAR2019:14:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;001 MAT 15APR2019 15APR2019:10:05:00 15APR2019 15APR2019:09:05:00&lt;/FONT&gt;&lt;BR /&gt;001 MAT 15APR2019 15APR2019:10:05:00 17APR2019 17APR2019:08:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;002 SSP 15APR2019 15APR2019:10:05:00 03FEB2019 03FEB2019:11:05:00&lt;/FONT&gt;&lt;BR /&gt;002 SSP 15APR2019 15APR2019:10:05:00 19APR2019 19APR2019:07:05:00&lt;BR /&gt;003 PPE 15APR2019 15APR2019:10:05:00 05MAR2019 05MAR2019:14:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;003 PPE 15APR2019 15APR2019:10:05:00 15APR2019 15APR2019:09:05:00&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;;&lt;/FONT&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;I&amp;nbsp; would like to flag latest&amp;nbsp; records (highlighted ones) where&amp;nbsp; vdt&amp;lt; dt or vdtm &amp;lt;dtm and I am using the following code but I am not getting intended result.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data=results out=res2;&lt;/P&gt;
&lt;P&gt;by id test vdt vdtm ;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data res3;&lt;/P&gt;
&lt;P&gt;set res2;&lt;/P&gt;
&lt;P&gt;by id test vdt vdtm;&lt;/P&gt;
&lt;P&gt;retain flag;&lt;/P&gt;
&lt;P&gt;if last.test then flag=0;&lt;/P&gt;
&lt;P&gt;if flag=0 and (. &amp;lt;vdt&amp;lt;dt or . &amp;lt; vdtm &amp;lt; dtm)&amp;nbsp; then do;&lt;/P&gt;
&lt;P&gt;slfl="Y";&lt;/P&gt;
&lt;P&gt;flag=1;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please let me know how to fix the above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;</description>
    <pubDate>Sat, 08 Aug 2020 20:05:13 GMT</pubDate>
    <dc:creator>sri1</dc:creator>
    <dc:date>2020-08-08T20:05:13Z</dc:date>
    <item>
      <title>How to get latest record</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-latest-record/m-p/675434#M203523</link>
      <description>&lt;P&gt;Hi ,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have the following data&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data results;&lt;BR /&gt;input id $ test $ dt date9. dtm datetime20. vdt date9. vdtm datetime20. ;&lt;BR /&gt;cards;&lt;BR /&gt;001 MAT 15APR2019 15APR2019:10:05:00 05MAR2019 05MAR2019:14:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;001 MAT 15APR2019 15APR2019:10:05:00 15APR2019 15APR2019:09:05:00&lt;/FONT&gt;&lt;BR /&gt;001 MAT 15APR2019 15APR2019:10:05:00 17APR2019 17APR2019:08:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;002 SSP 15APR2019 15APR2019:10:05:00 03FEB2019 03FEB2019:11:05:00&lt;/FONT&gt;&lt;BR /&gt;002 SSP 15APR2019 15APR2019:10:05:00 19APR2019 19APR2019:07:05:00&lt;BR /&gt;003 PPE 15APR2019 15APR2019:10:05:00 05MAR2019 05MAR2019:14:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;003 PPE 15APR2019 15APR2019:10:05:00 15APR2019 15APR2019:09:05:00&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;;&lt;/FONT&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;I&amp;nbsp; would like to flag latest&amp;nbsp; records (highlighted ones) where&amp;nbsp; vdt&amp;lt; dt or vdtm &amp;lt;dtm and I am using the following code but I am not getting intended result.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data=results out=res2;&lt;/P&gt;
&lt;P&gt;by id test vdt vdtm ;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data res3;&lt;/P&gt;
&lt;P&gt;set res2;&lt;/P&gt;
&lt;P&gt;by id test vdt vdtm;&lt;/P&gt;
&lt;P&gt;retain flag;&lt;/P&gt;
&lt;P&gt;if last.test then flag=0;&lt;/P&gt;
&lt;P&gt;if flag=0 and (. &amp;lt;vdt&amp;lt;dt or . &amp;lt; vdtm &amp;lt; dtm)&amp;nbsp; then do;&lt;/P&gt;
&lt;P&gt;slfl="Y";&lt;/P&gt;
&lt;P&gt;flag=1;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please let me know how to fix the above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Sat, 08 Aug 2020 20:05:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-latest-record/m-p/675434#M203523</guid>
      <dc:creator>sri1</dc:creator>
      <dc:date>2020-08-08T20:05:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to get latest record</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-latest-record/m-p/675451#M203530</link>
      <description>&lt;P&gt;Order of operations.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The usage of FIRST/LAST is logically incorrect because groups don't align. The groups only include specific records in that group so you need to change the order. First get the records that meet the condition and then flag the last operator.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do you need the records flagged or selected? Selected out is actually easier and can be done in one step. If you want it flagged it's a slightly longer process though a merge would work as well - ideally you have a unique identifier for each row as well to make it simpler.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
proc sort data=results out=res2;
    by id test vdt vdtm;
run;

data res3;
    set res2;
    *filter only records of interest;
    where (vdt&amp;lt;dt or vdtm &amp;lt; dtm);
    by id test vdt vdtm;

    *keep last record;
    if last.test;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/80196"&gt;@sri1&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi ,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have the following data&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data results;&lt;BR /&gt;input id $ test $ dt date9. dtm datetime20. vdt date9. vdtm datetime20. ;&lt;BR /&gt;cards;&lt;BR /&gt;001 MAT 15APR2019 15APR2019:10:05:00 05MAR2019 05MAR2019:14:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;001 MAT 15APR2019 15APR2019:10:05:00 15APR2019 15APR2019:09:05:00&lt;/FONT&gt;&lt;BR /&gt;001 MAT 15APR2019 15APR2019:10:05:00 17APR2019 17APR2019:08:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;002 SSP 15APR2019 15APR2019:10:05:00 03FEB2019 03FEB2019:11:05:00&lt;/FONT&gt;&lt;BR /&gt;002 SSP 15APR2019 15APR2019:10:05:00 19APR2019 19APR2019:07:05:00&lt;BR /&gt;003 PPE 15APR2019 15APR2019:10:05:00 05MAR2019 05MAR2019:14:05:00&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;003 PPE 15APR2019 15APR2019:10:05:00 15APR2019 15APR2019:09:05:00&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF6600"&gt;;&lt;/FONT&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;I&amp;nbsp; would like to flag latest&amp;nbsp; records (highlighted ones) where&amp;nbsp; vdt&amp;lt; dt or vdtm &amp;lt;dtm and I am using the following code but I am not getting intended result.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data=results out=res2;&lt;/P&gt;
&lt;P&gt;by id test vdt vdtm ;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data res3;&lt;/P&gt;
&lt;P&gt;set res2;&lt;/P&gt;
&lt;P&gt;by id test vdt vdtm;&lt;/P&gt;
&lt;P&gt;retain flag;&lt;/P&gt;
&lt;P&gt;if last.test then flag=0;&lt;/P&gt;
&lt;P&gt;if flag=0 and (. &amp;lt;vdt&amp;lt;dt or . &amp;lt; vdtm &amp;lt; dtm)&amp;nbsp; then do;&lt;/P&gt;
&lt;P&gt;slfl="Y";&lt;/P&gt;
&lt;P&gt;flag=1;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please let me know how to fix the above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Aug 2020 02:29:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-latest-record/m-p/675451#M203530</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-08-09T02:29:00Z</dc:date>
    </item>
  </channel>
</rss>

