<?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 avoid duplicate records while join table in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720178#M27695</link>
    <description>&lt;P&gt;I'm always outdone by Kurt, but my two cents.&amp;nbsp; This code might be use to someone learning lag and DO Whitlock loops.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
  infile datalines dlm="09"x;
  input TransactionId	$17. Premium	Comm Commission	Rwd	Reward;

datalines;
ICMlag_DEClag_20lag_718256	1000000	10	100000	10	100000
ICMlag_DEClag_20lag_718256	1000000	7.5	75000	7.5	75000
ICMlag_DEClag_20lag_718256	1000000	7.5	75000	5	3000
ICMlag_DEClag_20lag_718256	1000000	7.5	75000	2	10000
;
run;

data want;
  do until (last.TransactionId);
    set have;
      by TransactionId;
    /*lags*/
      lag_Premium=lag(Premium);
      lag_Comm =lag(Comm);
      lag_Commission=lag(Commission);
    if not first.TransactionId then do;
      if lag_Premium=(Premium)       then Premium=.;
      if lag_Comm =(Comm)            then Comm=.;
      if lag_Commission=(Commission) then Commission=.;
    end;
    output;
  end;
  drop lag_:;
  stop;
run;
options missing=" ";
proc print noObs;
  var _all_;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 18 Feb 2021 13:58:02 GMT</pubDate>
    <dc:creator>PhilC</dc:creator>
    <dc:date>2021-02-18T13:58:02Z</dc:date>
    <item>
      <title>How to avoid duplicate records while join table</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720165#M27692</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to merge three data sets. First data have 1 record, second data have 2 records and third data set have 4 records.&lt;/P&gt;
&lt;P&gt;While merging records, duplicate values gets copied in left data set.&lt;/P&gt;
&lt;P&gt;Please suggest how to avoid duplicate values&lt;/P&gt;
&lt;P&gt;Example –&lt;/P&gt;
&lt;P&gt;Data1&lt;/P&gt;
&lt;TABLE width="236"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;TransactionId&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="101"&gt;
&lt;P&gt;Premium&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="101"&gt;
&lt;P&gt;1000000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data2&lt;/P&gt;
&lt;TABLE width="288"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;TransactionId&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;Comm%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;Commission&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;100000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;7.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;75000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data3&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;TransactionId&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Rwd %&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Reward Commission&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;100000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;7.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;75000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;3000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;10000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Syntax -&lt;/P&gt;
&lt;P&gt;Data want;&lt;/P&gt;
&lt;P&gt;Set data1 (in=a) data2 (in=b) data3 (in=c);&lt;/P&gt;
&lt;P&gt;By TransanctionId;&lt;/P&gt;
&lt;P&gt;If a;&lt;/P&gt;
&lt;P&gt;Run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;output -&lt;/P&gt;
&lt;TABLE width="479"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;TransactionId&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="75"&gt;
&lt;P&gt;Premium&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="61"&gt;
&lt;P&gt;Comm %&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;Commission&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;Rwd %&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55"&gt;
&lt;P&gt;Reward&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="75"&gt;
&lt;P&gt;1000000.00&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="61"&gt;
&lt;P&gt;10.00&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;100000.00&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55"&gt;
&lt;P&gt;100000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="75"&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;1000000.00&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="61"&gt;
&lt;P&gt;7.50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;75000.00&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;7.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55"&gt;
&lt;P&gt;75000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="75"&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;1000000.00&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="61"&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;7.50&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;75000.00&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55"&gt;
&lt;P&gt;3000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="135"&gt;
&lt;P&gt;ICM_DEC_20_718256&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="75"&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;1000000.00&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="61"&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;7.50&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="83"&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;75000.00&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="71"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55"&gt;
&lt;P&gt;10000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't want duplicate values in premium, comm % and commission variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 18 Feb 2021 12:29:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720165#M27692</guid>
      <dc:creator>sanjaymane7</dc:creator>
      <dc:date>2021-02-18T12:29:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to avoid duplicate records while join table</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720170#M27693</link>
      <description>&lt;P&gt;PROC SQL;&lt;BR /&gt;create table want as&lt;BR /&gt;SELECT&lt;BR /&gt;a.transactionid&lt;BR /&gt;,c.premium&lt;BR /&gt;,b.Comm%&lt;BR /&gt;,b.Commision&lt;BR /&gt;,a.rwd%&lt;BR /&gt;,a.reward&lt;BR /&gt;FROM&lt;BR /&gt;data3 a&lt;BR /&gt;left join data2 b on a.transactionid = b.transactionid and a.[reward commision] = b.commision&lt;BR /&gt;left join data1 c on a.transactionid = c.transactionid and a.[reward commision] = c.premium&lt;BR /&gt;;&lt;BR /&gt;quit;&lt;/P&gt;</description>
      <pubDate>Thu, 18 Feb 2021 13:03:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720170#M27693</guid>
      <dc:creator>utrocketeng</dc:creator>
      <dc:date>2021-02-18T13:03:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to avoid duplicate records while join table</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720171#M27694</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data data1;
input TransactionId :$20. Premium;
datalines;
ICM_DEC_20_718256 1000000
;

data data2;
input TransactionId :$20. Comm_percent Commission;
datalines;
ICM_DEC_20_718256 10 100000
ICM_DEC_20_718256 7.5 75000
;

data data3;
input TransactionId :$20. Rwd_percent Reward_Commission;
datalines;
ICM_DEC_20_718256 10 100000
ICM_DEC_20_718256 7.5 75000
ICM_DEC_20_718256 5 3000
ICM_DEC_20_718256 2 10000
;

data want;
if 0 then set data1 data2 data3;
call missing(of _all_);
merge
  data1
  data2
  data3
;
by TransactionId;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Please post data as data steps with datalines, so we do not have to write code to read it into datasets.&lt;/P&gt;</description>
      <pubDate>Thu, 18 Feb 2021 13:18:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720171#M27694</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2021-02-18T13:18:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to avoid duplicate records while join table</title>
      <link>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720178#M27695</link>
      <description>&lt;P&gt;I'm always outdone by Kurt, but my two cents.&amp;nbsp; This code might be use to someone learning lag and DO Whitlock loops.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
  infile datalines dlm="09"x;
  input TransactionId	$17. Premium	Comm Commission	Rwd	Reward;

datalines;
ICMlag_DEClag_20lag_718256	1000000	10	100000	10	100000
ICMlag_DEClag_20lag_718256	1000000	7.5	75000	7.5	75000
ICMlag_DEClag_20lag_718256	1000000	7.5	75000	5	3000
ICMlag_DEClag_20lag_718256	1000000	7.5	75000	2	10000
;
run;

data want;
  do until (last.TransactionId);
    set have;
      by TransactionId;
    /*lags*/
      lag_Premium=lag(Premium);
      lag_Comm =lag(Comm);
      lag_Commission=lag(Commission);
    if not first.TransactionId then do;
      if lag_Premium=(Premium)       then Premium=.;
      if lag_Comm =(Comm)            then Comm=.;
      if lag_Commission=(Commission) then Commission=.;
    end;
    output;
  end;
  drop lag_:;
  stop;
run;
options missing=" ";
proc print noObs;
  var _all_;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 18 Feb 2021 13:58:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/How-to-avoid-duplicate-records-while-join-table/m-p/720178#M27695</guid>
      <dc:creator>PhilC</dc:creator>
      <dc:date>2021-02-18T13:58:02Z</dc:date>
    </item>
  </channel>
</rss>

