<?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 inner join using key if condition in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/inner-join-using-key-if-condition/m-p/722742#M19819</link>
    <description>&lt;P&gt;&lt;SPAN&gt;I need to join tables, but the key must be different depending on the conditions&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;Exemple&amp;nbsp;&lt;/P&gt;&lt;PRE class="tw-data-text tw-text-large XcVN5d tw-ta"&gt;&lt;SPAN&gt;Given each type and salary the following fee must be charged&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Table 1&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Type&lt;/TD&gt;&lt;TD&gt;salary&lt;/TD&gt;&lt;TD&gt;FEE(%)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;2,5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;Table 2&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;cliente&lt;/TD&gt;&lt;TD&gt;type&lt;/TD&gt;&lt;TD&gt;salary&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1600&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;3500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;8000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;My Key is type and salary, but the fee&amp;nbsp;&lt;SPAN&gt;the fee must be charged according to the previous range&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class="tw-data-text tw-text-large XcVN5d tw-ta"&gt;Exemple&lt;BR /&gt;cliente 1 must pay 1 % because the salary is smaller then the second type 2000.&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;PRE class="tw-data-text tw-text-large XcVN5d tw-ta"&gt;&lt;SPAN&gt;how can I create the condition of the key considering the range?

I tried "if  - then ", but I have many conditions (more than 1000, it would be unfeasible)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 01 Mar 2021 23:55:19 GMT</pubDate>
    <dc:creator>fjsouz</dc:creator>
    <dc:date>2021-03-01T23:55:19Z</dc:date>
    <item>
      <title>inner join using key if condition</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/inner-join-using-key-if-condition/m-p/722742#M19819</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I need to join tables, but the key must be different depending on the conditions&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;Exemple&amp;nbsp;&lt;/P&gt;&lt;PRE class="tw-data-text tw-text-large XcVN5d tw-ta"&gt;&lt;SPAN&gt;Given each type and salary the following fee must be charged&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Table 1&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Type&lt;/TD&gt;&lt;TD&gt;salary&lt;/TD&gt;&lt;TD&gt;FEE(%)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;2,5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;Table 2&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;cliente&lt;/TD&gt;&lt;TD&gt;type&lt;/TD&gt;&lt;TD&gt;salary&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1600&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;3500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;8000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;My Key is type and salary, but the fee&amp;nbsp;&lt;SPAN&gt;the fee must be charged according to the previous range&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class="tw-data-text tw-text-large XcVN5d tw-ta"&gt;Exemple&lt;BR /&gt;cliente 1 must pay 1 % because the salary is smaller then the second type 2000.&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;PRE class="tw-data-text tw-text-large XcVN5d tw-ta"&gt;&lt;SPAN&gt;how can I create the condition of the key considering the range?

I tried "if  - then ", but I have many conditions (more than 1000, it would be unfeasible)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Mar 2021 23:55:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/inner-join-using-key-if-condition/m-p/722742#M19819</guid>
      <dc:creator>fjsouz</dc:creator>
      <dc:date>2021-03-01T23:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: inner join using key if condition</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/inner-join-using-key-if-condition/m-p/722778#M19820</link>
      <description>&lt;P&gt;A datastep solution:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data fees;
input type $ salary  FEE;
datalines;
A   1000    1
A   2000    2
A   3000    2.5
B   1000    2
B   2000    3
C   2000    1
;

data clients;
input cliente type $ salary;
datalines;
1   A   1500
2   B   1600
3   A   1000
4   B   3500
5   C   8000
6   C   2000
;

proc sort data=clients; by type salary;

data want;
merge fees (in=inFee) clients(in=inClients); by type salary;
retain f;
if inFee then f = fee;
if inClients;
drop fee; rename f=fee;
run;

proc sort data=want; by cliente; 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="PGStats_0-1614659673521.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/55339i5548F824A33A46FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="PGStats_0-1614659673521.png" alt="PGStats_0-1614659673521.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note that you should have a record with a salary = 0 for each type to cover all cases.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Mar 2021 04:36:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/inner-join-using-key-if-condition/m-p/722778#M19820</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2021-03-02T04:36:41Z</dc:date>
    </item>
  </channel>
</rss>

