<?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: Join to one of 4 tables based on a date condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692270#M210856</link>
    <description>Apologies, i have edited the post and made the correction. Does that make sense?</description>
    <pubDate>Sat, 17 Oct 2020 03:02:24 GMT</pubDate>
    <dc:creator>TheNovice</dc:creator>
    <dc:date>2020-10-17T03:02:24Z</dc:date>
    <item>
      <title>Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692264#M210850</link>
      <description>&lt;P&gt;Hi friends,&lt;/P&gt;&lt;P&gt;I have a table A that I need to join to one of 4 source tables. The weird thing is that the source tables house different months... (same format and structure). So the tables houses months as follows:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Table&lt;/TD&gt;&lt;TD&gt;months available&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1,5,9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2,6,10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;3,7,11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;4,8,12&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have table F like:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;START_date&lt;/TD&gt;&lt;TD&gt;END_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-06-01&lt;/TD&gt;&lt;TD&gt;2020-08-30&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Which i need to left join to one of the below tables where the value appears right before the end_Date&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table A&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;cost&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-01-15&lt;/TD&gt;&lt;TD&gt;5.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-05-20&lt;/TD&gt;&lt;TD&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; 6.00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table b&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;cost&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-02-15&lt;/TD&gt;&lt;TD&gt;5.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-06-20&lt;/TD&gt;&lt;TD&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; 6.00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table c&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;cost&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-03-15&lt;/TD&gt;&lt;TD&gt;5.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-11-20&lt;/TD&gt;&lt;TD&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; 6.00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table D&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;cost&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-04-15&lt;/TD&gt;&lt;TD&gt;5.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-08-12&lt;/TD&gt;&lt;TD&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; 15.00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The join should give me because table D has the date and value right before the end_date in Table F&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;START_date&lt;/TD&gt;&lt;TD&gt;END_Date&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Cost&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 12&lt;/TD&gt;&lt;TD&gt;2020-06-01&lt;/TD&gt;&lt;TD&gt;2020-08-30&lt;/TD&gt;&lt;TD&gt;2020-08-12&lt;/TD&gt;&lt;TD&gt;15.00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A. How to do the join where the query picks the right table? the tables are huge and I read that using the union function may not be ideal even in a pass through. Also the tables will have multiple values in the same month so i need to pick the cost that was recorded right before the end_Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any suggestions would be incredibly helpful&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;</description>
      <pubDate>Sat, 17 Oct 2020 03:01:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692264#M210850</guid>
      <dc:creator>TheNovice</dc:creator>
      <dc:date>2020-10-17T03:01:48Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692267#M210853</link>
      <description>&lt;P&gt;Please explain further where the date=08-30 and cost=15 come from. They don't appear anywhere in the example data.&lt;/P&gt;</description>
      <pubDate>Sat, 17 Oct 2020 02:39:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692267#M210853</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2020-10-17T02:39:02Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692270#M210856</link>
      <description>Apologies, i have edited the post and made the correction. Does that make sense?</description>
      <pubDate>Sat, 17 Oct 2020 03:02:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692270#M210856</guid>
      <dc:creator>TheNovice</dc:creator>
      <dc:date>2020-10-17T03:02:24Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692276#M210860</link>
      <description>&lt;P&gt;If table f is much smaller than a-b-c-d, it might be better to perform 4 left joins and then keep the max date for each id.&lt;/P&gt;</description>
      <pubDate>Sat, 17 Oct 2020 03:38:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692276#M210860</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2020-10-17T03:38:03Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692278#M210861</link>
      <description>Smaller yes but table F is still over a million records... right now i am doing 4 separate left joins and then using data step to consolidate all....</description>
      <pubDate>Sat, 17 Oct 2020 03:42:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692278#M210861</guid>
      <dc:creator>TheNovice</dc:creator>
      <dc:date>2020-10-17T03:42:32Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692328#M210896</link>
      <description>&lt;P&gt;I got an email with your reply and it works thank you&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table z as&lt;/P&gt;&lt;P&gt;select&amp;nbsp;&amp;nbsp; f.*,&amp;nbsp;&amp;nbsp; x.date format=yymmdd10.,&amp;nbsp;&amp;nbsp; x.cost&lt;/P&gt;&lt;P&gt;from f left join&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(&amp;nbsp;&amp;nbsp; select * from a &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;union all &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select * from b &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;union all&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select * from c &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;union all&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;select * from d &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;) as x on f.id=x.id and x.date&lt;/P&gt;&lt;P&gt;between f.START_date and f.END_dategroup by f.idhaving x.date=max(x.date);&lt;/P&gt;&lt;P&gt;select * from z;quit;&lt;/P&gt;</description>
      <pubDate>Sun, 18 Oct 2020 02:45:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692328#M210896</guid>
      <dc:creator>TheNovice</dc:creator>
      <dc:date>2020-10-18T02:45:11Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692376#M210918</link>
      <description>&lt;P&gt;I pulled this suggestion out (deleted it) after re-reading your original post and the mention about the size of tables a-b-c-d. I thought the union of those tables would create an even greater problem. But it could be that SAS/SQL is cleaver enough to avoid creating a temporary table from the union of tables a-b-c-d.&lt;/P&gt;
&lt;P&gt;Do you get decent performance with this approach?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;here it is, in a more readable format&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data a;
input ID  date :yymmdd10.    cost;
datalines;
12 2020-01-15  5.00
12 2020-05-20                         6.00
;
data b;
input ID  date :yymmdd10.    cost;
datalines;
12 2020-02-15  5.00
12 2020-06-20                         6.00
;
data c;
input ID  date :yymmdd10.    cost;
datalines;
12 2020-03-15  5.00
12 2020-11-20                         6.00
;
data d;
input ID  date :yymmdd10.    cost;
datalines;
12 2020-04-15  5.00
12 2020-08-12                         15.00
;

data f;
input ID (START_date  END_date) (:yymmdd10.);
format START_date  END_date yymmdd10.;
datalines;
12 2020-06-01  2020-08-30
;

proc sql;
create table z as
select
    f.*,
    x.date format=yymmdd10.,
    x.cost
from 
    f left join
    (   select * from a 
        union all 
        select * from b 
        union all
        select * from c 
        union all
        select * from d 
        ) as x on f.id=x.id and x.date between f.START_date and f.END_date
group by f.id
having x.date=max(x.date);
select * from z;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 269px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/50752iA83B64846B4B7DEC/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 18 Oct 2020 17:00:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692376#M210918</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2020-10-18T17:00:47Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692412#M210939</link>
      <description>&lt;P&gt;Thank you very much. The performance wasn't so bad. Took about 10 minutes. I think it will run longer once the original table gets bigger. Can't think of a way around it but i appreciate your help&lt;/P&gt;</description>
      <pubDate>Mon, 19 Oct 2020 02:12:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692412#M210939</guid>
      <dc:creator>TheNovice</dc:creator>
      <dc:date>2020-10-19T02:12:45Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692414#M210940</link>
      <description>&lt;P&gt;For your real life task, it might be worth replacing the "*" with only the actual variable names that you really need.&lt;/P&gt;</description>
      <pubDate>Mon, 19 Oct 2020 03:25:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692414#M210940</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2020-10-19T03:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: Join to one of 4 tables based on a date condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692416#M210942</link>
      <description>You are correct. the 10 min run time was with me choosing the correct variables. With * it was closer to 30 mins</description>
      <pubDate>Mon, 19 Oct 2020 03:45:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-to-one-of-4-tables-based-on-a-date-condition/m-p/692416#M210942</guid>
      <dc:creator>TheNovice</dc:creator>
      <dc:date>2020-10-19T03:45:36Z</dc:date>
    </item>
  </channel>
</rss>

