<?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 HASH PROGRAM TO UPDATE VALUES in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752760#M39047</link>
    <description>&lt;P&gt;I had master, transaction and required output tables as mentioned below.&lt;/P&gt;
&lt;P&gt;1ST CONDITION: For any ID, If any data is present in the master and if blank value is present in the transaction data for the same id then&amp;nbsp; the value in the master data should not be updated with the&amp;nbsp; blank value from Transaction data.(eg:ID- 1 GENDER:female)&lt;/P&gt;
&lt;P&gt;2ND CONDITION: For any ID, If any value&amp;nbsp; &amp;nbsp;is present in the master and if any&amp;nbsp; value&amp;nbsp; is present in the transaction data also for the same id then&amp;nbsp; the value in the master data should&amp;nbsp; be updated with the&amp;nbsp; value&amp;nbsp; from Transaction data.(eg:ID- 2 GENDER:male)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please help me to implement the following requirement using&amp;nbsp; HASH programming only for updating the data bcoz as the master dataset has&amp;nbsp; millions of records and&amp;nbsp; using of UPDATE&amp;nbsp; statement in SAS programming is&amp;nbsp; time consuming .So please help me ..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in Advance.&lt;/P&gt;
&lt;TABLE width="439"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;MASTER&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;ID#&lt;/TD&gt;
&lt;TD width="90"&gt;Date&lt;/TD&gt;
&lt;TD width="82"&gt;Gender&lt;/TD&gt;
&lt;TD width="64"&gt;Code&lt;/TD&gt;
&lt;TD width="64"&gt;Class&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;1&lt;/TD&gt;
&lt;TD width="90"&gt;.&lt;/TD&gt;
&lt;TD width="82"&gt;female&lt;/TD&gt;
&lt;TD width="64"&gt;AB&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;2&lt;/TD&gt;
&lt;TD width="90"&gt;.&lt;/TD&gt;
&lt;TD width="82"&gt;female&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;3&lt;/TD&gt;
&lt;TD width="90"&gt;1/1/2021&lt;/TD&gt;
&lt;TD width="82"&gt;M&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="439"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;TRANSACTION&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;ID#&lt;/TD&gt;
&lt;TD width="90"&gt;Date&lt;/TD&gt;
&lt;TD width="82"&gt;Gender&lt;/TD&gt;
&lt;TD width="64"&gt;Code&lt;/TD&gt;
&lt;TD width="64"&gt;Class&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;1&lt;/TD&gt;
&lt;TD width="90"&gt;7/1/2020&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;EF&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;2&lt;/TD&gt;
&lt;TD width="90"&gt;7/2/2020&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;3&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="439"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;output&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;ID#&lt;/TD&gt;
&lt;TD width="90"&gt;Date&lt;/TD&gt;
&lt;TD width="82"&gt;Gender&lt;/TD&gt;
&lt;TD width="64"&gt;Code&lt;/TD&gt;
&lt;TD width="64"&gt;Class&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;1&lt;/TD&gt;
&lt;TD width="90"&gt;7/1/2020&lt;/TD&gt;
&lt;TD width="82"&gt;female&lt;/TD&gt;
&lt;TD width="64"&gt;EF&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;2&lt;/TD&gt;
&lt;TD width="90"&gt;7/2/2020&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;3&lt;/TD&gt;
&lt;TD width="90"&gt;1/1/2021&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 08 Jul 2021 02:14:56 GMT</pubDate>
    <dc:creator>rohithverma</dc:creator>
    <dc:date>2021-07-08T02:14:56Z</dc:date>
    <item>
      <title>HASH PROGRAM TO UPDATE VALUES</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752760#M39047</link>
      <description>&lt;P&gt;I had master, transaction and required output tables as mentioned below.&lt;/P&gt;
&lt;P&gt;1ST CONDITION: For any ID, If any data is present in the master and if blank value is present in the transaction data for the same id then&amp;nbsp; the value in the master data should not be updated with the&amp;nbsp; blank value from Transaction data.(eg:ID- 1 GENDER:female)&lt;/P&gt;
&lt;P&gt;2ND CONDITION: For any ID, If any value&amp;nbsp; &amp;nbsp;is present in the master and if any&amp;nbsp; value&amp;nbsp; is present in the transaction data also for the same id then&amp;nbsp; the value in the master data should&amp;nbsp; be updated with the&amp;nbsp; value&amp;nbsp; from Transaction data.(eg:ID- 2 GENDER:male)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please help me to implement the following requirement using&amp;nbsp; HASH programming only for updating the data bcoz as the master dataset has&amp;nbsp; millions of records and&amp;nbsp; using of UPDATE&amp;nbsp; statement in SAS programming is&amp;nbsp; time consuming .So please help me ..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in Advance.&lt;/P&gt;
&lt;TABLE width="439"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;MASTER&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;ID#&lt;/TD&gt;
&lt;TD width="90"&gt;Date&lt;/TD&gt;
&lt;TD width="82"&gt;Gender&lt;/TD&gt;
&lt;TD width="64"&gt;Code&lt;/TD&gt;
&lt;TD width="64"&gt;Class&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;1&lt;/TD&gt;
&lt;TD width="90"&gt;.&lt;/TD&gt;
&lt;TD width="82"&gt;female&lt;/TD&gt;
&lt;TD width="64"&gt;AB&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;2&lt;/TD&gt;
&lt;TD width="90"&gt;.&lt;/TD&gt;
&lt;TD width="82"&gt;female&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;3&lt;/TD&gt;
&lt;TD width="90"&gt;1/1/2021&lt;/TD&gt;
&lt;TD width="82"&gt;M&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="439"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;TRANSACTION&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;ID#&lt;/TD&gt;
&lt;TD width="90"&gt;Date&lt;/TD&gt;
&lt;TD width="82"&gt;Gender&lt;/TD&gt;
&lt;TD width="64"&gt;Code&lt;/TD&gt;
&lt;TD width="64"&gt;Class&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;1&lt;/TD&gt;
&lt;TD width="90"&gt;7/1/2020&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;EF&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;2&lt;/TD&gt;
&lt;TD width="90"&gt;7/2/2020&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;3&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="439"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;output&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="82"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;ID#&lt;/TD&gt;
&lt;TD width="90"&gt;Date&lt;/TD&gt;
&lt;TD width="82"&gt;Gender&lt;/TD&gt;
&lt;TD width="64"&gt;Code&lt;/TD&gt;
&lt;TD width="64"&gt;Class&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;1&lt;/TD&gt;
&lt;TD width="90"&gt;7/1/2020&lt;/TD&gt;
&lt;TD width="82"&gt;female&lt;/TD&gt;
&lt;TD width="64"&gt;EF&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;2&lt;/TD&gt;
&lt;TD width="90"&gt;7/2/2020&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;LOW&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;3&lt;/TD&gt;
&lt;TD width="90"&gt;1/1/2021&lt;/TD&gt;
&lt;TD width="82"&gt;male&lt;/TD&gt;
&lt;TD width="64"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jul 2021 02:14:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752760#M39047</guid>
      <dc:creator>rohithverma</dc:creator>
      <dc:date>2021-07-08T02:14:56Z</dc:date>
    </item>
    <item>
      <title>Re: HASH PROGRAM TO UPDATE VALUES</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752766#M39048</link>
      <description>&lt;P&gt;Per my comment to your other topic&amp;nbsp;&lt;A href="https://communities.sas.com/t5/SAS-Programming/update-master-table-with-transaction-table/m-p/752664" target="_self"&gt;update master table with transaction table&lt;/A&gt;, if you are producing a new master dataset by applying transactions to the old master dataset, you won't get much better performance than with the UPDATE statement, assuming your datasets are sorted by ID.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hash might help if the master data are not sorted by ID, because you could put the transactions in a hash object in memory, and then retrieve as appropriate from that hash object when reading the (unsorted) master data set.&amp;nbsp; You would have avoided sorting the master data set.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But using a hash object would introduce a new problem.&amp;nbsp; Retrieving data from a hash object of transactions will retrieve any missing values in the transactions and overwrite the corresponding non-missing value in the master dataset.&amp;nbsp; &amp;nbsp;This is something that the UPDATE statement doesn't do -&amp;nbsp; a very valuable property when applying transaction updates to master data sets.&amp;nbsp; It is also something the default mode of MODIFY will avoid doing if you choose to update the master dataset in place.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now one could make a hash object of each variable in the TRANSACT dataset, keeping only the non-missing values.&amp;nbsp; Then you could safely use hash objects.&amp;nbsp; But if the data are already sorted, this will be highly unlikely to improve performance compared to UPDATE or MODIFY.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jul 2021 03:57:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752766#M39048</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2021-07-08T03:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: HASH PROGRAM TO UPDATE VALUES</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752767#M39049</link>
      <description>&lt;P&gt;Unlike your other post, I see you are entering this post in the Enterprise Guide section.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are you processing a Local SAS data set?&amp;nbsp; If so, is EG working with a local sas server?&amp;nbsp; &amp;nbsp;In short, where are the datasets?&amp;nbsp; And where is the sas server?&amp;nbsp; &amp;nbsp;If they are not on the same machine, then your slowness is likely due to necessary transfer of the entire dataset for processing over your EG client to SAS server connection - and probably transferring the resulting dataset back again. &amp;nbsp;Using HASH vs some other technique will not mitigate the primary reason for slow performance in such a case.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best to keep your data where the server is.&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jul 2021 04:08:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752767#M39049</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2021-07-08T04:08:36Z</dc:date>
    </item>
    <item>
      <title>Re: HASH PROGRAM TO UPDATE VALUES</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752769#M39050</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/150852"&gt;@rohithverma&lt;/a&gt;&amp;nbsp; - You would be best to explore a range of potential techniques before deciding on the best one. Hash isn't always the best solution.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A good start would be to post what you have tried so far including how long it took to run.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jul 2021 04:31:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752769#M39050</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2021-07-08T04:31:25Z</dc:date>
    </item>
    <item>
      <title>Re: HASH PROGRAM TO UPDATE VALUES</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752772#M39051</link>
      <description>&lt;P&gt;Using a hash table as you asked for could work like below.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As others stated if such a hash approach really helps will depend on your data and especially where it's stored as compared to where SAS executes.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data MASTER;
  infile datalines truncover dlm='|' dsd;
  input ID Date:ddmmyy. Gender $ Code $ Class $;
  format date date9.;
  datalines;
1|.|female|AB|LOW
2|.|female|CD|LOW
3|1/1/2021|M|CD| 
;

data TRANSACTION;
  infile datalines truncover dlm='|' dsd;
  input ID Date:ddmmyy. Gender $ Code $ Class $;
  format date date9.;
  datalines;
1|7/1/2020||EF| 
2|7/2/2020|male|| 
3||male|| 
;

proc sql;
  create view v_transaction as
    select 
      id,
      date as _date,
      gender as _gender,
      code as _code,
      class as _class
    from transaction
    where cmiss(date,gender,code,class) ne 4
    ;
quit;

data master;
  if _n_=1 then 
    do;
      if 0 then set v_transaction;
      dcl hash h1(dataset:'v_transaction');
      h1.defineKey('id');
      h1.defineData(all:'y');
      h1.defineDone();
    end;

  modify master;

  if h1.find()=0 then 
    do;
      date=coalesce(_date,date);
      gender=coalescec(_gender,gender);
      code=coalescec(_code,code);
      class=coalescec(_class,class);
      replace;
      call missing (of _:);
    end;
run;

proc print data=master;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 08 Jul 2021 07:19:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/HASH-PROGRAM-TO-UPDATE-VALUES/m-p/752772#M39051</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2021-07-08T07:19:10Z</dc:date>
    </item>
  </channel>
</rss>

