<?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 Matching on across mulitple columns in SAS Data Science</title>
    <link>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82579#M546</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a data set that looks like the following.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" style="WIDTH: 1457px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="20" width="132"&gt;ID&lt;/TD&gt;&lt;TD width="209"&gt;TVG_MSO1&lt;/TD&gt;&lt;TD width="188"&gt;TVG_MSO2&lt;/TD&gt;&lt;TD width="200"&gt;TVG_MSO3&lt;/TD&gt;&lt;TD width="222"&gt;NTIA_MSO1&lt;/TD&gt;&lt;TD width="209"&gt;NTIA_MSO2&lt;/TD&gt;&lt;TD width="179"&gt;NTIA_MSO3&lt;/TD&gt;&lt;TD width="118"&gt;NTIA_MSO4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;391517108002054&lt;/TD&gt;&lt;TD&gt;Comcast Cable Communications&lt;/TD&gt;&lt;TD&gt;Lamont Digital Systems, Inc.&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;191130017006002&lt;/TD&gt;&lt;TD&gt;ImOn Communications, LLC&lt;/TD&gt;&lt;TD&gt;Mediacom, L. L. C.&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;CenturyLink&lt;/TD&gt;&lt;TD&gt;Dynamic Broadband&lt;/TD&gt;&lt;TD&gt;ImOn Communications, LLC&lt;/TD&gt;&lt;TD&gt;Mediacom, L. L. C.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;320030016123003&lt;/TD&gt;&lt;TD&gt;CenturyLink&lt;/TD&gt;&lt;TD&gt;Commercial Satellite System&lt;/TD&gt;&lt;TD&gt;Cox Cable Communications Inc&lt;/TD&gt;&lt;TD&gt;CenturyTel TeleVideo, Inc.&lt;/TD&gt;&lt;TD&gt;Cox Cable Communications Inc&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;360450613002014&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;Verizon Service Corp&lt;/TD&gt;&lt;TD&gt;WesTel Systems&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;220550020021029&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Cox Cable Communications Inc&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;480291203002025&lt;/TD&gt;&lt;TD&gt;CS Wireless Systems, Inc.&lt;/TD&gt;&lt;TD&gt;Grande ClearSource Comm.&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Grande ClearSource Comm.&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;132551612001003&lt;/TD&gt;&lt;TD&gt;Comcast Cable Communications&lt;/TD&gt;&lt;TD&gt;DirecPath&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Comcast Cable Communications&lt;/TD&gt;&lt;TD&gt;Covad Communications&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;260150108002035&lt;/TD&gt;&lt;TD&gt;Wide Open West&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;Barry County Telephone Company&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;210490202023015&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;160219702005039&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My problem is that that I need find matches where TVG_MSO1 is equal to NTIA_MSO1 or NTIA_MSO1 or NTIA_MSO2 or NTIA_MSO3 or NTIA_MSO4. But the macth could come from any combination of the TVG_ and NTIA_ columns. So for example, in the first row TVG_MSO3 equals NTIA_MSO2, so I would like to have a final column that would say the name of the match "Time Warner Cable". If there is no match, that is fine. Similarly in row two the match is TVG_MSO2 and NTIA_MSO4 and the output column would be "Mediacom, L. L. C.".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there is any one that could help me out with a solution, I would be forever grateful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your friend in SAS,&lt;/P&gt;&lt;P&gt;John Wynne&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 01 Oct 2012 21:56:30 GMT</pubDate>
    <dc:creator>jwynne21</dc:creator>
    <dc:date>2012-10-01T21:56:30Z</dc:date>
    <item>
      <title>Matching on across mulitple columns</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82579#M546</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a data set that looks like the following.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" style="WIDTH: 1457px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="20" width="132"&gt;ID&lt;/TD&gt;&lt;TD width="209"&gt;TVG_MSO1&lt;/TD&gt;&lt;TD width="188"&gt;TVG_MSO2&lt;/TD&gt;&lt;TD width="200"&gt;TVG_MSO3&lt;/TD&gt;&lt;TD width="222"&gt;NTIA_MSO1&lt;/TD&gt;&lt;TD width="209"&gt;NTIA_MSO2&lt;/TD&gt;&lt;TD width="179"&gt;NTIA_MSO3&lt;/TD&gt;&lt;TD width="118"&gt;NTIA_MSO4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;391517108002054&lt;/TD&gt;&lt;TD&gt;Comcast Cable Communications&lt;/TD&gt;&lt;TD&gt;Lamont Digital Systems, Inc.&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;191130017006002&lt;/TD&gt;&lt;TD&gt;ImOn Communications, LLC&lt;/TD&gt;&lt;TD&gt;Mediacom, L. L. C.&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;CenturyLink&lt;/TD&gt;&lt;TD&gt;Dynamic Broadband&lt;/TD&gt;&lt;TD&gt;ImOn Communications, LLC&lt;/TD&gt;&lt;TD&gt;Mediacom, L. L. C.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;320030016123003&lt;/TD&gt;&lt;TD&gt;CenturyLink&lt;/TD&gt;&lt;TD&gt;Commercial Satellite System&lt;/TD&gt;&lt;TD&gt;Cox Cable Communications Inc&lt;/TD&gt;&lt;TD&gt;CenturyTel TeleVideo, Inc.&lt;/TD&gt;&lt;TD&gt;Cox Cable Communications Inc&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;360450613002014&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;Verizon Service Corp&lt;/TD&gt;&lt;TD&gt;WesTel Systems&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;220550020021029&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Cox Cable Communications Inc&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;480291203002025&lt;/TD&gt;&lt;TD&gt;CS Wireless Systems, Inc.&lt;/TD&gt;&lt;TD&gt;Grande ClearSource Comm.&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Grande ClearSource Comm.&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;132551612001003&lt;/TD&gt;&lt;TD&gt;Comcast Cable Communications&lt;/TD&gt;&lt;TD&gt;DirecPath&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Comcast Cable Communications&lt;/TD&gt;&lt;TD&gt;Covad Communications&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;260150108002035&lt;/TD&gt;&lt;TD&gt;Wide Open West&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;Barry County Telephone Company&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;210490202023015&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;AT&amp;amp;T&lt;/TD&gt;&lt;TD&gt;Time Warner Cable&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl63" height="20"&gt;160219702005039&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;TD&gt;NULL&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My problem is that that I need find matches where TVG_MSO1 is equal to NTIA_MSO1 or NTIA_MSO1 or NTIA_MSO2 or NTIA_MSO3 or NTIA_MSO4. But the macth could come from any combination of the TVG_ and NTIA_ columns. So for example, in the first row TVG_MSO3 equals NTIA_MSO2, so I would like to have a final column that would say the name of the match "Time Warner Cable". If there is no match, that is fine. Similarly in row two the match is TVG_MSO2 and NTIA_MSO4 and the output column would be "Mediacom, L. L. C.".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there is any one that could help me out with a solution, I would be forever grateful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your friend in SAS,&lt;/P&gt;&lt;P&gt;John Wynne&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Oct 2012 21:56:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82579#M546</guid>
      <dc:creator>jwynne21</dc:creator>
      <dc:date>2012-10-01T21:56:30Z</dc:date>
    </item>
    <item>
      <title>Re: Matching on across mulitple columns</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82580#M547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can you have multiple matches? And would you care which one matches?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assuming you can't have multiple matches.&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array tvg(*) tvg_mso1-tvg_mso3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array ntia(*) ntia_mso1-ntia_mso4;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do i=1 to dim(tvg);&lt;/P&gt;&lt;P&gt;do j=1 to dim(ntia);&lt;/P&gt;&lt;P&gt;if whichc(tvg(i), of ntia(*))&amp;gt;0 then match=tvg(i);&lt;/P&gt;&lt;P&gt;if match ne '' then leave; *I can't remember if its leave or break to end the loop;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Oct 2012 22:42:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82580#M547</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2012-10-01T22:42:49Z</dc:date>
    </item>
    <item>
      <title>Re: Matching on across mulitple columns</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82581#M548</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would suggest the following (assuming your data is already sorted) :&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Use proc transpose to create 2 datasets each using &lt;STRONG&gt;ID&lt;/STRONG&gt; as the by variable, one containing all the TVG data in a single column and the other containing the NTIA data.&amp;nbsp; The automatic _NAME_ column will tell you which column an individual record came from&lt;/LI&gt;&lt;LI&gt;Use proc sql to join the two tables&lt;UL&gt;&lt;LI&gt;Rename the _NAME_ columns to be distinct if you need this information&lt;/LI&gt;&lt;LI&gt;Include where conditions to exclude nulls from the joins&lt;/LI&gt;&lt;LI&gt;Order by TVG_data then NTIA_data if you expect multiple matches per ID&lt;/LI&gt;&lt;LI&gt;Include the original table in the join if you need to output rows in the original format&lt;/LI&gt;&lt;LI&gt;In the case of multiple joins a following data step could be used to identify the first match in each row of the original table.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I do not at the moment have access to SAS to test and debug but I could sketch out some code if that would help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2012 02:06:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82581#M548</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2012-10-02T02:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: Matching on across mulitple columns</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82582#M549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Forgot to mention: if this is a very large table you can get by with one pass of proc transpose and join the resulting table to itself.&amp;nbsp; The SQL gets a bit more messy, though you could use views to create two virtual tables and proceed as outlined in my first reply.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2012 02:08:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82582#M549</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2012-10-02T02:08:57Z</dc:date>
    </item>
    <item>
      <title>Re: Matching on across mulitple columns</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82583#M550</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your help&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2012 15:32:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82583#M550</guid>
      <dc:creator>jwynne21</dc:creator>
      <dc:date>2012-10-02T15:32:50Z</dc:date>
    </item>
    <item>
      <title>Re: Matching on across mulitple columns</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82584#M551</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As this query is still marked 'Not answered' I thought you might be looking for code.&amp;nbsp; Here is my suggestion.&amp;nbsp; I've assumed the word NULL in your table is a token for a null value, not the literal value; however if that is not the case you can substitute&amp;nbsp; &amp;lt;&amp;gt;&amp;nbsp; 'NULL'&amp;nbsp; for&amp;nbsp; IS&amp;nbsp; NOT NULL.&amp;nbsp; This code is not tested.&amp;nbsp; The results may not be in the same ID order as the input data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="p1"&gt;*&amp;nbsp;&amp;nbsp; Assuming ID is unique ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Proc Transpose&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; Communications&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Prefix&amp;nbsp; =&amp;nbsp;&amp;nbsp; TVG_Values_&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; Original_TVG_Column&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Out&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; TVG_Data&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; By&amp;nbsp; ID&amp;nbsp; Notsorted ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var TVG_MSO: ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp; Selects all columns beginning with TVG_MSO ;&lt;/P&gt;&lt;P class="p1"&gt;Run ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Proc Transpose&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; Communications&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Prefix&amp;nbsp; =&amp;nbsp;&amp;nbsp; NTIA_Values_&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; Original_NTIA_Column&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Out&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; NTIA_Data&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; By&amp;nbsp; ID&amp;nbsp; Notsorted ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var NTIA_MSO: ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp; Selects all columns beginning with NTIA_MSO ;&lt;/P&gt;&lt;P class="p1"&gt;Run ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Proc SQL ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create Table&amp;nbsp;&amp;nbsp; Comm_Matches&amp;nbsp;&amp;nbsp;&amp;nbsp; As&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select&amp;nbsp; &lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Distinct&lt;/P&gt;&lt;P class="p1"&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; TVG.ID&lt;/P&gt;&lt;P class="p1"&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; TVG.TVG_Values_1&amp;nbsp;&amp;nbsp;&amp;nbsp; As&amp;nbsp; Matching&lt;/P&gt;&lt;P class="p1"&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; TVG.Original_TVG_Column&lt;/P&gt;&lt;P class="p1"&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; NTI.Original_NTIA_Column&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; From&amp;nbsp;&amp;nbsp;&amp;nbsp; TVG_Data&amp;nbsp;&amp;nbsp;&amp;nbsp; TVG&lt;/P&gt;&lt;P class="p1"&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; NTIA_Data&amp;nbsp;&amp;nbsp; NTI&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Where&amp;nbsp;&amp;nbsp; NTI.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; =&amp;nbsp;&amp;nbsp; TVG.ID&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And NTI.NTIA_Values_1&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; TVG.TVG_Values_1&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And NTI.NTIA_Values_1&amp;nbsp;&amp;nbsp; IS&amp;nbsp; NOT NULL&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And TVG.TVG_Values_1&amp;nbsp;&amp;nbsp;&amp;nbsp; IS&amp;nbsp; NOT NULL&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P class="p1"&gt;Quit ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 06 Oct 2012 06:57:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Matching-on-across-mulitple-columns/m-p/82584#M551</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2012-10-06T06:57:25Z</dc:date>
    </item>
  </channel>
</rss>

