<?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 Removing duplicate records based on certain variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Removing-duplicate-records-based-on-certain-variables/m-p/600527#M173610</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC CONTENTS of the COMBINEDSORTED DATASET:&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;DIV class="branch"&gt;&lt;DIV&gt;&lt;DIV align="center"&gt;Alphabetic List of Variables and Attributes# Variable Type Len Format Informat4521367 &lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ADM_DT&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ADM_TM&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;CIHI_KEY&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;$16.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;HCNE&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;$10.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;INST_NO&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;$4.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;REG_DT&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;ANYDTDTM40.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;REG_TM&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;ANYDTDTM40&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not sure why the temp is returning blank values&lt;/P&gt;&lt;P&gt;I am basically trying to delete any duplicate records that exist for HCNE by keeping the record with the earlier REG_TM or ADM_TM&lt;/P&gt;&lt;P&gt;I am not sure if the formatting is cusing the issue&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please advise how to correct the same&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;&lt;BR /&gt;&lt;BR /&gt;data two(keep=HCNE REG_TM ADM_TM  temp);                                                                                                     
  set Combinedsorted end=finished;                                                                                                                 
   by HCNE;                                                                                                                               
  retain temp;                                                                                                                          
  if not finished then do;                                                                                                              
  pt = _N_ + 1;                                                                                                                         
  set Combinedsorted(rename= (HCNE=next_id  REG_TM=next_regtm ADM_TM=next_admtm)) point=pt;                                                            
                                                                                                                                        
  if first.HCNE then do;                                                                                                                  
   if REG_TM &amp;lt; ADM_TM then temp=REG_TM;                                                                                                    
    else temp=ADM_TM;                                                                                                                    
                                                                                                                                        
     if next_regtm &amp;lt; temp then temp=next_regtm;                                                                                         
      else if next_admtm &amp;lt; temp then temp=next_admtm;                                                                                   
  end;                                                                                                                                  
                                                                                                                                        
  end;                                                                                                                                  
run;                                                                                                                                    
                                                                                                                                        
data final;                                                                                                                             
 set two;                                                                                                                               
   if REG_TM=temp or ADM_TM=temp then output;                                                                                             
run;                                                                                                                                    
                                                                                                                                        
proc print;                                                                                                                             
 format REG_TM ADM_TM temp DATETIME20.;                                                                                                         
run;      &lt;BR /&gt;  &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 30 Oct 2019 20:09:19 GMT</pubDate>
    <dc:creator>Ranjeeta</dc:creator>
    <dc:date>2019-10-30T20:09:19Z</dc:date>
    <item>
      <title>Removing duplicate records based on certain variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-duplicate-records-based-on-certain-variables/m-p/600527#M173610</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC CONTENTS of the COMBINEDSORTED DATASET:&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;DIV class="branch"&gt;&lt;DIV&gt;&lt;DIV align="center"&gt;Alphabetic List of Variables and Attributes# Variable Type Len Format Informat4521367 &lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ADM_DT&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ADM_TM&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;CIHI_KEY&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;$16.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;HCNE&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;$10.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;INST_NO&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;$4.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;REG_DT&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;ANYDTDTM40.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;REG_TM&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;DATETIME20.&lt;/TD&gt;&lt;TD&gt;ANYDTDTM40&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not sure why the temp is returning blank values&lt;/P&gt;&lt;P&gt;I am basically trying to delete any duplicate records that exist for HCNE by keeping the record with the earlier REG_TM or ADM_TM&lt;/P&gt;&lt;P&gt;I am not sure if the formatting is cusing the issue&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please advise how to correct the same&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;&lt;BR /&gt;&lt;BR /&gt;data two(keep=HCNE REG_TM ADM_TM  temp);                                                                                                     
  set Combinedsorted end=finished;                                                                                                                 
   by HCNE;                                                                                                                               
  retain temp;                                                                                                                          
  if not finished then do;                                                                                                              
  pt = _N_ + 1;                                                                                                                         
  set Combinedsorted(rename= (HCNE=next_id  REG_TM=next_regtm ADM_TM=next_admtm)) point=pt;                                                            
                                                                                                                                        
  if first.HCNE then do;                                                                                                                  
   if REG_TM &amp;lt; ADM_TM then temp=REG_TM;                                                                                                    
    else temp=ADM_TM;                                                                                                                    
                                                                                                                                        
     if next_regtm &amp;lt; temp then temp=next_regtm;                                                                                         
      else if next_admtm &amp;lt; temp then temp=next_admtm;                                                                                   
  end;                                                                                                                                  
                                                                                                                                        
  end;                                                                                                                                  
run;                                                                                                                                    
                                                                                                                                        
data final;                                                                                                                             
 set two;                                                                                                                               
   if REG_TM=temp or ADM_TM=temp then output;                                                                                             
run;                                                                                                                                    
                                                                                                                                        
proc print;                                                                                                                             
 format REG_TM ADM_TM temp DATETIME20.;                                                                                                         
run;      &lt;BR /&gt;  &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Oct 2019 20:09:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-duplicate-records-based-on-certain-variables/m-p/600527#M173610</guid>
      <dc:creator>Ranjeeta</dc:creator>
      <dc:date>2019-10-30T20:09:19Z</dc:date>
    </item>
    <item>
      <title>Re: Removing duplicate records based on certain variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-duplicate-records-based-on-certain-variables/m-p/600540#M173618</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/240770"&gt;@Ranjeeta&lt;/a&gt;: Please show a small sample of your input data and the corresponding sample of output data you want to generate. A picture of data is worth a thousand words about the data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kind regards&lt;/P&gt;
&lt;P&gt;Paul D.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Oct 2019 20:42:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-duplicate-records-based-on-certain-variables/m-p/600540#M173618</guid>
      <dc:creator>hashman</dc:creator>
      <dc:date>2019-10-30T20:42:31Z</dc:date>
    </item>
    <item>
      <title>Re: Removing duplicate records based on certain variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-duplicate-records-based-on-certain-variables/m-p/600541#M173619</link>
      <description>&lt;P&gt;Something like this?&amp;nbsp; (untested as you don't supply a data step with test data)&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data WANT;
  merge COMBINEDSORTED
        COMBINEDSORTED(firstobs=2 rename=(HCNE=NEXT_ID  REG_TM=NEXT_REGTM ADM_TM=NEXT_ADMTM)) ;
  if HCNE=NEXT_ID ;
  MIN=min(REG_TM, NEXT_REGTM, ADM_TM, NEXT_ADMTM );
  if MIN=NEXT_REGTM | MIN=NEXT_ADMTM then do;
    REG_TM=NEXT_REGTM;
    ADM_TM=NEXT_ADMTM;
  end; 
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Oct 2019 21:12:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-duplicate-records-based-on-certain-variables/m-p/600541#M173619</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-10-30T21:12:24Z</dc:date>
    </item>
  </channel>
</rss>

