<?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: Matching two data files in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117260#M32341</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks, it works. may i have one additional question. if i want it also to take the first (year) available value or the latest available value. eg. above, 1998 is not available in file2 but it is available in file1 so i want to match all the observations in 1998 from file1 with the first (year 1999) in file 2 how can i do that?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 05 Nov 2012 16:05:27 GMT</pubDate>
    <dc:creator>thdang</dc:creator>
    <dc:date>2012-11-05T16:05:27Z</dc:date>
    <item>
      <title>Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117255#M32336</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hoi, Can someone please help me, how can I merge this two file by matching the ID and the year (not the the whole date)? I don't know how i can take only the year part of the date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;File 1:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value1&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="jiveImage" src="https://communities.sas.com/legacyfs/online/2676_pastedImage_1.png" style="width: 201px; height: 583px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;File 2:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value2&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="jiveImage" src="https://communities.sas.com/legacyfs/online/2677_pastedImage_2.png" style="width: 226px; height: 278px;" /&gt;&lt;IMG alt="" class="jiveImage" src="https://communities.sas.com/legacyfs/online/2680_pastedImage_5.png" style="width: 91px; height: 284px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I would have something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value2&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;029948&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/31&lt;STRONG&gt;/1998&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp; 100001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.070933&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;0.006000&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;029948&lt;/TD&gt;&lt;TD&gt;&amp;nbsp; 01/29/&lt;STRONG&gt;1999&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp; 100001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;0.048564&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;0.006000&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;029948&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/31/1999&amp;nbsp;&amp;nbsp; 100001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.053090&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.006000&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;029948&lt;/TD&gt;&lt;TD&gt;&amp;nbsp; 01/31&lt;STRONG&gt;/2000&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp; 100001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;-0.050745&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;0.005200&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;thank you very much!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 14:28:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117255#M32336</guid>
      <dc:creator>thdang</dc:creator>
      <dc:date>2012-11-05T14:28:14Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117256#M32337</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use the year() function&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 14:35:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117256#M32337</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-11-05T14:35:25Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117257#M32338</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have try this but it did not work &lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from file1 as a left join&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file2 as b&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on a.id=b.id and a.year(date)= b.year(date);&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 14:42:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117257#M32338</guid>
      <dc:creator>thdang</dc:creator>
      <dc:date>2012-11-05T14:42:07Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117258#M32339</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;YEAR is a function that you apply to a variable.&amp;nbsp; So the syntax for your where clause should be&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;year(a.date) = year(b.date)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The syntax that you tried looks more like a method call for an object oriented programming language like PHP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 15:07:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117258#M32339</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-11-05T15:07:51Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117259#M32340</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In addition to what Tom said, if you want to avoid the notes (and possibly assigning the wrong dates), change your select statement.&amp;nbsp; i.e.:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select a.*,b.value2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from file1 as a left join&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file2 as b&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on a.id=b.id and year(a.date)= year(b.date);&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 15:15:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117259#M32340</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-11-05T15:15:46Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117260#M32341</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks, it works. may i have one additional question. if i want it also to take the first (year) available value or the latest available value. eg. above, 1998 is not available in file2 but it is available in file1 so i want to match all the observations in 1998 from file1 with the first (year 1999) in file 2 how can i do that?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 16:05:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117260#M32341</guid>
      <dc:creator>thdang</dc:creator>
      <dc:date>2012-11-05T16:05:27Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117261#M32342</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could try: (not tested)&lt;/P&gt;&lt;P&gt;on a.id=b.id&lt;/P&gt;&lt;P&gt;group by a.id, a.year(date)&lt;/P&gt;&lt;P&gt;having abs(a.year(date)-b.year(date))=min(abs(a.year(date)-b.year(date)) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 16:24:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117261#M32342</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-11-05T16:24:24Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117262#M32343</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i have something like this&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select a.*, b.value2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from file1 as a left join&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file2 as b&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on a.id=b.id &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by a.id, year(a.date) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; having abs(year(a.date)-year(b.date))= min(year(b.date)-year(a.date)) ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but then all the data from 2000 onwards is exclude.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 20:00:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117262#M32343</guid>
      <dc:creator>thdang</dc:creator>
      <dc:date>2012-11-05T20:00:55Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117263#M32344</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;If this is exact what you have run, then you need an additional abs(), like mentioned in my previous post:&lt;/P&gt;&lt;P&gt;having abs(a.year(date)-b.year(date))=min(&lt;STRONG&gt;abs&lt;/STRONG&gt;(a.year(date)-b.year(date)) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 20:21:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117263#M32344</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-11-05T20:21:01Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117264#M32345</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;yes, thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 20:33:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117264#M32345</guid>
      <dc:creator>thdang</dc:creator>
      <dc:date>2012-11-05T20:33:01Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117265#M32346</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;do you may know why i get more observation than the original file which i do not expect?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 20:57:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117265#M32346</guid>
      <dc:creator>thdang</dc:creator>
      <dc:date>2012-11-05T20:57:31Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117266#M32347</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I can guess. As in general, if you get more obs than the master table&amp;nbsp; after left join, it usually means you have more than one match per id, year(date). One way to find out how and why is to run something like the following query:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from want group by id, year(date) having count(*)&amp;gt;1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 22:04:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117266#M32347</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-11-05T22:04:37Z</dc:date>
    </item>
    <item>
      <title>Re: Matching two data files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117267#M32348</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thank you!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2012 22:30:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Matching-two-data-files/m-p/117267#M32348</guid>
      <dc:creator>thdang</dc:creator>
      <dc:date>2012-11-05T22:30:29Z</dc:date>
    </item>
  </channel>
</rss>

