<?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: Concatenate two tables with dates in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793973#M254537</link>
    <description>&lt;PRE&gt;data a;
infile cards expandtabs;
input Number	DATE_RECORD	:ddmmyy10.;
format date_record ddmmyy10.;
cards;
234	01/02/1995	 	
890	03/06/2016	 	
2345	04/06/2012	
896	29/11/2001	 	
8765	06/03/2002	
;


data b;
infile cards expandtabs;
input Number	DATE_RECORD	:ddmmyy10.;
format date_record ddmmyy10.;
cards;
2345	11/04/2013
2345	04/11/2017
 	2345	04/06/2015
896	21/02/2002
 	896	01/11/2008
234	13/09/1995
;
proc sort data=a;by  Number	DATE_RECORD;run;
proc sort data=b;by  Number	DATE_RECORD;run;
data want;
 merge a b(rename=(	DATE_RECORD=First_Date));
 by  Number;
 if first.Number;
run;

&lt;/PRE&gt;</description>
    <pubDate>Wed, 02 Feb 2022 07:46:26 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2022-02-02T07:46:26Z</dc:date>
    <item>
      <title>Concatenate two tables with dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793831#M254480</link>
      <description>&lt;P&gt;Hello, I have a first table with the customer number and the registration date. Then a second with the order numbers and all the order dates.&lt;BR /&gt;I would like to create a table that adds to the A table the date of the first order.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Number&lt;/TD&gt;&lt;TD&gt;DATE_RECORD&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Number&lt;/TD&gt;&lt;TD&gt;DATE_ORDER&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;234&lt;/TD&gt;&lt;TD&gt;01/02/1995&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2345&lt;/TD&gt;&lt;TD&gt;11/04/2013&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;890&lt;/TD&gt;&lt;TD&gt;03/06/2016&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2345&lt;/TD&gt;&lt;TD&gt;04/11/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2345&lt;/TD&gt;&lt;TD&gt;04/06/2012&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2345&lt;/TD&gt;&lt;TD&gt;04/06/2015&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;896&lt;/TD&gt;&lt;TD&gt;29/11/2001&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;896&lt;/TD&gt;&lt;TD&gt;21/02/2002&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8765&lt;/TD&gt;&lt;TD&gt;06/03/2002&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;896&lt;/TD&gt;&lt;TD&gt;01/11/2008&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;234&lt;/TD&gt;&lt;TD&gt;13/09/1995&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;WANT&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Number&lt;/TD&gt;&lt;TD&gt;DATE_RECORD&lt;/TD&gt;&lt;TD&gt;FIRST_ORDER&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;234&lt;/TD&gt;&lt;TD&gt;01/02/1995&lt;/TD&gt;&lt;TD&gt;13/09/1995&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;890&lt;/TD&gt;&lt;TD&gt;03/06/2016&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2345&lt;/TD&gt;&lt;TD&gt;04/06/2012&lt;/TD&gt;&lt;TD&gt;11/04/2013&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;896&lt;/TD&gt;&lt;TD&gt;29/11/2001&lt;/TD&gt;&lt;TD&gt;21/02/2002&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;8765&lt;/TD&gt;&lt;TD&gt;06/03/2002&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&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;Thanks for your help&lt;/P&gt;</description>
      <pubDate>Tue, 01 Feb 2022 15:45:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793831#M254480</guid>
      <dc:creator>WilliamB</dc:creator>
      <dc:date>2022-02-01T15:45:31Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate two tables with dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793834#M254482</link>
      <description>&lt;PRE&gt;PROC SQL;&lt;BR /&gt;CREATE TABLE want AS&lt;BR /&gt;SELECT a.*,b.number as numberB, b.DATE_ORDER &lt;BR /&gt;FROM A&lt;BR /&gt;FULL JOIN B&lt;BR /&gt;ON A.number eq b.number&lt;BR /&gt;ORDER BY a.number,a.date_record, b.DATE_ORDER&lt;BR /&gt;;&lt;BR /&gt;QUIT;&lt;BR /&gt;DATA want;&lt;BR /&gt;set want;&lt;BR /&gt;by number date_record date_order;&lt;BR /&gt;if missing(date_record) or missing(date_order) then do;&lt;BR /&gt;if missing(date_record) and missing(date_order) then put 'ERROR: no registration and no order date found ' number=;&lt;BR /&gt;else if missing(date_order) then put 'ERROR: no order date found ' number= date_record=;&lt;BR /&gt;else if missing(date_record) then put 'ERROR: no registration date found ' number= date_order=;&lt;BR /&gt;end;&lt;BR /&gt;if first.number;&lt;BR /&gt;RUN;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 Feb 2022 08:10:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793834#M254482</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2022-02-02T08:10:56Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate two tables with dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793973#M254537</link>
      <description>&lt;PRE&gt;data a;
infile cards expandtabs;
input Number	DATE_RECORD	:ddmmyy10.;
format date_record ddmmyy10.;
cards;
234	01/02/1995	 	
890	03/06/2016	 	
2345	04/06/2012	
896	29/11/2001	 	
8765	06/03/2002	
;


data b;
infile cards expandtabs;
input Number	DATE_RECORD	:ddmmyy10.;
format date_record ddmmyy10.;
cards;
2345	11/04/2013
2345	04/11/2017
 	2345	04/06/2015
896	21/02/2002
 	896	01/11/2008
234	13/09/1995
;
proc sort data=a;by  Number	DATE_RECORD;run;
proc sort data=b;by  Number	DATE_RECORD;run;
data want;
 merge a b(rename=(	DATE_RECORD=First_Date));
 by  Number;
 if first.Number;
run;

&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 Feb 2022 07:46:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793973#M254537</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-02-02T07:46:26Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate two tables with dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793974#M254538</link>
      <description>&lt;P&gt;Should be doable in a simple SQL:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
  select
    a.number,
    a.date_record,
    min(b.date_order) as first_order format=ddmmyy10.
  from a left join b on a.number = b.number
  group by a.number, a.date_record
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 Feb 2022 08:00:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793974#M254538</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2022-02-02T08:00:15Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate two tables with dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793975#M254539</link>
      <description>&lt;P&gt;If keeping the order of dataset a is of importance, consider a hash approach:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=b;
by number date_order;
run;

data want;
set a;
if _n_ = 1
then do;
  format first_order ddmmyy10.;
  declare hash b (dataset:"b (rename=(date_order=first_order))");
  b.definekey("number");
  b.definedata("first_order");
  b.definedone();
end;
if b.find() ne 0 then first_order = .;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Since only the first observation for a key is kept when loading the table into the hash (unless a MULTIDATA:"Y" option is used), the preceding sort makes sure that the minimum date for a number goes into the hash.&lt;/P&gt;</description>
      <pubDate>Wed, 02 Feb 2022 08:07:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-two-tables-with-dates/m-p/793975#M254539</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2022-02-02T08:07:56Z</dc:date>
    </item>
  </channel>
</rss>

