<?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 compare the record with previous one to make change log dataset in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822150#M324624</link>
    <description>&lt;P&gt;BY logic work great here in combination with the LAG() function.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want; 
set have;

by id_part part_type part_num part_cost notsorted;

prev_part_type = lag(part_type);
prev_part_num = lag(part_num);
prev_part_cost = lag(part_cost);

if not first.id_part then do;

    if part_cost ne prev_part_cost then do;
         change_field = "part_cost";
         previous_value = prev_part_cost;
         changed_to = part_cost;
         output;
      end;

*add other checks which may be complex;

end;

run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Another option that comes to mind is to create a copy of the data set incrementing the date by 1 and then using PROC COMPARE but you would have to finagle the results as well. May be simper and an option that could be worth exploring.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 07 Jul 2022 20:35:25 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2022-07-07T20:35:25Z</dc:date>
    <item>
      <title>How to compare the record with previous one to make change log dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822145#M324620</link>
      <description>&lt;P&gt;I need create change log dataset which need compare the records in historical daily snapshot dataset and capture all the changes and put into change log data set. the daily snapshot dataset looks like below:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;report date&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;ID_PART&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;PART_TYPE&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;PART_NM&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;PART_COST&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/1/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AA&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/2/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AA&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/3/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AA&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/4/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AA&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/5/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AA&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/6/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BB&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/7/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BB&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/8/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BB&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/9/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BB&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/10/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BB&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/11/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BB&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/12/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CC&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/13/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CC&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1/14/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1A1&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CC&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;BOLT&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.00&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;The result I am looking at is something like below:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yj111_0-1657224114153.png" style="width: 543px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/73039i3F24AE8BE680B527/image-dimensions/543x114?v=v2" width="543" height="114" role="button" title="yj111_0-1657224114153.png" alt="yj111_0-1657224114153.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;any suggestions?&amp;nbsp;&lt;/P&gt;&lt;P&gt;THANK YOU!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jul 2022 20:02:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822145#M324620</guid>
      <dc:creator>yj111</dc:creator>
      <dc:date>2022-07-07T20:02:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to compare the record with previous one to make change log dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822148#M324622</link>
      <description>&lt;P&gt;You can check every variable for changes:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;if part_cost=lag(part_cost)&amp;nbsp;then...&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;and make decisions based on that comparison&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jul 2022 20:19:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822148#M324622</guid>
      <dc:creator>AlexBennasar</dc:creator>
      <dc:date>2022-07-07T20:19:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to compare the record with previous one to make change log dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822150#M324624</link>
      <description>&lt;P&gt;BY logic work great here in combination with the LAG() function.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want; 
set have;

by id_part part_type part_num part_cost notsorted;

prev_part_type = lag(part_type);
prev_part_num = lag(part_num);
prev_part_cost = lag(part_cost);

if not first.id_part then do;

    if part_cost ne prev_part_cost then do;
         change_field = "part_cost";
         previous_value = prev_part_cost;
         changed_to = part_cost;
         output;
      end;

*add other checks which may be complex;

end;

run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Another option that comes to mind is to create a copy of the data set incrementing the date by 1 and then using PROC COMPARE but you would have to finagle the results as well. May be simper and an option that could be worth exploring.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jul 2022 20:35:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822150#M324624</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2022-07-07T20:35:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to compare the record with previous one to make change log dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822159#M324631</link>
      <description>Thank you. I do have over 100 fields need compare, I would think maybe array() with lag() function combination work on this situation</description>
      <pubDate>Thu, 07 Jul 2022 21:10:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822159#M324631</guid>
      <dc:creator>yj111</dc:creator>
      <dc:date>2022-07-07T21:10:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to compare the record with previous one to make change log dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822197#M324651</link>
      <description>&lt;P&gt;Below should work for any number of columns.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines truncover dsd;
  input report_date :mmddyy. ID_PART $ PART_TYPE $ PART_NM $ PART_COST;
  format report_date date9. part_cost dollar16.2;
  datalines;
1/01/2022,1A1,AA,BOLT,3.00
1/02/2022,1A1,AA,BOLT,3.00
1/03/2022,1A1,AA,BOLT,4.00
1/04/2022,1A1,AA,BOLT,4.00
1/05/2022,1A1,AA,BOLT,4.00
1/06/2022,1A1,BB,BOLT,4.00
1/07/2022,1A1,BB,BOLT,4.00
1/08/2022,1A1,BB,BOLT,4.00
1/09/2022,1A1,BB,BOLT,4.00
1/10/2022,1A1,BB,BOLT,4.00
1/11/2022,1A1,BB,BOLT,4.00
1/12/2022,1A1,CC,BOLT,5.00
1/13/2022,1A1,CC,BOLT,5.00
1/14/2022,1A1,CC,BOLT,5.00
1/01/2022,1xx,AA,BOLT,3.00
1/02/2022,1xx,AA,BOLT,3.00
1/03/2022,1xx,AA,BOLT,4.00
1/10/2022,1xx,AA,BOLT,4.00
;


/* ensure table is sorted by ID_PART and REPORT_DATE */
proc sort data=have presorted;
  by id_part report_date;
run;

%let varlist=;
proc sql noprint;
  select name into :varlist separated by ' '
  from dictionary.columns
  where libname='WORK' and memname='HAVE' and upcase(name) not in ('ID_PART', 'REPORT_DATE')
  ;
quit;

proc transpose data=have out=inter prefix=_report_date_ ;
  by id_part;
  id report_date;
  var &amp;amp;varlist;
run;

data want(keep=id_part change_date change_field previous_value changed_to);
  if 0 then set inter(keep=id_part);
  length change_date $6 change_field $32 previous_value changed_to $100;
  set inter(rename=(_name_=Change_Field));
  by id_part;
  array _vals {*} _report_date_:;
  do _i=2 to dim(_vals);
    if _vals[_i-1] ne _vals[_i] then 
      do;
        change_date=scan(vname(_vals[_i]),-1,'_');
        previous_value=_vals[_i-1];
        changed_to=_vals[_i];
        output;
      end;
  end;
run;

proc print data=want;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1657247843545.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/73049iDC02D00879F7D41F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1657247843545.png" alt="Patrick_0-1657247843545.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Jul 2022 02:38:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822197#M324651</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2022-07-08T02:38:53Z</dc:date>
    </item>
    <item>
      <title>Re: How to compare the record with previous one to make change log dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822418#M324761</link>
      <description>&lt;P&gt;And just adding a small fix for change_date so the value doesn't get truncated ...and also is an actual SAS Date value and not a string.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines truncover dsd;
  input report_date :mmddyy. ID_PART $ PART_TYPE $ PART_NM $ PART_COST;
  format report_date date9. part_cost dollar16.2;
  datalines;
1/01/2022,1A1,AA,BOLT,3.00
1/02/2022,1A1,AA,BOLT,3.00
1/03/2022,1A1,AA,BOLT,4.00
1/04/2022,1A1,AA,BOLT,4.00
1/05/2022,1A1,AA,BOLT,4.00
1/06/2022,1A1,BB,BOLT,4.00
1/07/2022,1A1,BB,BOLT,4.00
1/08/2022,1A1,BB,BOLT,4.00
1/09/2022,1A1,BB,BOLT,4.00
1/10/2022,1A1,BB,BOLT,4.00
1/11/2022,1A1,BB,BOLT,4.00
1/12/2022,1A1,CC,BOLT,5.00
1/13/2022,1A1,CC,BOLT,5.00
1/14/2022,1A1,CC,BOLT,5.00
1/01/2022,1xx,AA,BOLT,3.00
1/02/2022,1xx,AA,BOLT,3.00
1/03/2022,1xx,AA,BOLT,4.00
1/10/2022,1xx,AA,BOLT,4.00
;


/* ensure table is sorted by ID_PART and REPORT_DATE */
proc sort data=have presorted;
  by id_part report_date;
run;

%let varlist=;
proc sql noprint;
  select name into :varlist separated by ' '
  from dictionary.columns
  where libname='WORK' and memname='HAVE' and upcase(name) not in ('ID_PART', 'REPORT_DATE')
  ;
quit;

proc transpose data=have out=inter prefix=_report_date_ ;
  by id_part;
  id report_date;
  var &amp;amp;varlist;
run;

data want(keep=id_part change_date change_field previous_value changed_to);
  if 0 then set inter(keep=id_part);
  length change_date 8 change_field $32 previous_value changed_to $100;
  format change_date date9.;
  set inter(rename=(_name_=Change_Field));
  by id_part;
  array _vals {*} _report_date_:;
  do _i=2 to dim(_vals);
    if _vals[_i-1] ne _vals[_i] then 
      do;
        change_date=input(scan(vname(_vals[_i]),-1,'_'),date9.);
        previous_value=_vals[_i-1];
        changed_to=_vals[_i];
        output;
      end;
  end;
run;

proc print data=want;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 Jul 2022 07:23:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-compare-the-record-with-previous-one-to-make-change-log/m-p/822418#M324761</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2022-07-09T07:23:34Z</dc:date>
    </item>
  </channel>
</rss>

