<?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: Performing a lookup between 2 tables using a loop pattern in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Performing-a-lookup-between-2-tables-using-a-loop-pattern/m-p/555270#M154516</link>
    <description>&lt;P&gt;Another way:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
  set FIRST;
  link varexists;
  if _N_=1 then 
        call execute('data WANT; set SECOND; length ELEMENT INFO $10; INFO=cats(ID);');
  else if VAREXISTS and REQUIRED='YES' then 
        call execute('INFO=cats('||INFO||');');
  else  call execute('INFO=".       ";');
  call execute('ELEMENT="'||INFO||'"; output;');
  return;
  varexists:
  DSID=open('WORK.SECOND');
  VAREXISTS=varnum(DSID,INFO);
  DSID=close(DSID);
run;
run;   &lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" style="height: 522px;" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TH class="l header" style="width: 92.7273px; height: 18px;" scope="col"&gt;ELEMENT&lt;/TH&gt;
&lt;TH class="l header" style="width: 74.5455px; height: 18px;" scope="col"&gt;INFO&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;ID&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;GROUP&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;CLASS&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;FIRSTNAME&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;TOM&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;CITY&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;PARIS&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;GENDER&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;AGE&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;25&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;ID&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;22&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;GROUP&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;STRONG&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CLASS&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;STRONG&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;FIRSTNAME&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;JOHN&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CITY&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;TOKYO&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GENDER&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AGE&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;20&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;ID&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;13&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GROUP&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CLASS&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;FIRSTNAME&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;PATRICIA&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CITY&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;ROMA&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GENDER&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AGE&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;18&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;ID&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;4&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GROUP&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CLASS&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;FIRSTNAME&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;JOHANA&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CITY&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;LONDON&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GENDER&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AGE&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;17&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 01 May 2019 04:05:32 GMT</pubDate>
    <dc:creator>ChrisNZ</dc:creator>
    <dc:date>2019-05-01T04:05:32Z</dc:date>
    <item>
      <title>Performing a lookup between 2 tables using a loop pattern</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Performing-a-lookup-between-2-tables-using-a-loop-pattern/m-p/554959#M154432</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I am on SAS 9.2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have two tables:&lt;/P&gt;&lt;P&gt;The &lt;STRONG&gt;FIRST&lt;/STRONG&gt; Table tells if the info is required:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA WORK.FIRST;
	INPUT CODE INFO $ REQUIRED $;
DATALINES;
1 ID YES	
2 Group NO
3 Class NO	
4 FirstName YES
5 City YES
6 Gender NO
7 Age YES
;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I have a &lt;STRONG&gt;SECOND&lt;/STRONG&gt; table that contains informations:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA WORK.SECOND;
	INPUT ID FIRSTNAME $ CITY $ AGE TEAM $ ADDRESS $;
DATALINES;
1 TOM PARIS 25 TEAM_A ADDRESSA
22 JOHN TOKYO 20 TEAM_B ADDRESSB
13 PATRICIA ROMA 18 TEAM_B ADDRESSB
4 JOHANA LONDON 17 TEAM_A ADDRESSA
15 PHILLIP NEWYORK 32 TEAM_A ADDRESSA
6 LOUIS ATLANTA 26 TEAM_A ADDRESSA
47 SALLY MADRID 30 TEAM_B ADDRESSB
;RUN;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to scan each and every row of the FIRST table and lookup in the variables of the SECOND table to check if the info is present if yes then write in a THIRD table:&lt;/P&gt;&lt;P&gt;The program should do something like this:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Scan the &lt;STRONG&gt;1st&lt;/STRONG&gt; row of the FIRST table, check if info is present in the &lt;STRONG&gt;1st&lt;/STRONG&gt; row of the SECOND table if yes: write in the THIRD TABLE.&lt;/LI&gt;&lt;LI&gt;Scan the &lt;STRONG&gt;2nd&lt;/STRONG&gt; row of the FIRST table,&amp;nbsp;check if info is present in the first row of the SECOND table if yes: write in the THIRD TABLE.&lt;/LI&gt;&lt;LI&gt;...&lt;/LI&gt;&lt;LI&gt;Scan the &lt;STRONG&gt;last&lt;/STRONG&gt; row of the FIRST table,&amp;nbsp;check if info is present in the &lt;STRONG&gt;1st&lt;/STRONG&gt; row of the SECOND table if yes: write in the THIRD TABLE.&lt;/LI&gt;&lt;LI&gt;Scan the&lt;STRONG&gt; first&lt;/STRONG&gt; row of the FIRST table, check if info is present in the &lt;STRONG&gt;2nd&lt;/STRONG&gt; row of the SECOND table if yes: write in the THIRD TABLE.&lt;/LI&gt;&lt;LI&gt;...&lt;/LI&gt;&lt;LI&gt;Scan the &lt;STRONG&gt;last&lt;/STRONG&gt; row&amp;nbsp;FIRST table, check if info is present in the &lt;STRONG&gt;last&lt;/STRONG&gt; row of the SECOND table if yes: write in the THIRD TABLE.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;The THIRD table should look like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA WORK.THIRD;	
INPUT ELEMENT $ INFO $;
DATALINES;
ID 1
Group .
Class .
FirstName TOM 
City PARIS 
Gender .
Age 25
ID 22
Group .
Class .
FirstName JOHN
City TOKYO
Gender .
Age 20
ID 13
Group .
Class .
FirstName PATRICIA
City ROMA
Gender .
Age 18
ID 4
Group .
Class .
FirstName JOHANA
City LONDON
Gender .
Age 17
ID 15
Group .
Class .
FirstName PHILLIP
City NEWYORK
Gender .
Age 32
ID 6
Group .
Class .
FirstName LOUIS
City ATLANTA
Gender .
Age 26
ID 47
Group .
Class .
FirstName SALLY
City MADRID
Gender .
Age 30
;RUN;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In conclusion my question is: How to perform a lookup between the observations of a table and the variables of an other table using a loop pattern ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;At the beginning I thought about nested data step, but I figured out that it is not possible.&lt;/LI&gt;&lt;LI&gt;I also thought about saving all the entries of the SECOND table in macro variables (transforming the SECOND Table in a matrix of macro-variables that I can call using Index and Position of each cell) and then do a data step using the FIRST table and the macrovariables but I am pretty sure it is not efficient.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope this is pretty clear, indeed my real tables are much bigger, this is a simplified example to ease the understanding.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you have any idea about that ?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Apr 2019 09:23:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Performing-a-lookup-between-2-tables-using-a-loop-pattern/m-p/554959#M154432</guid>
      <dc:creator>Hugo_B</dc:creator>
      <dc:date>2019-04-30T09:23:18Z</dc:date>
    </item>
    <item>
      <title>Re: Performing a lookup between 2 tables using a loop pattern</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Performing-a-lookup-between-2-tables-using-a-loop-pattern/m-p/555233#M154500</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/272343"&gt;@Hugo_B&lt;/a&gt;&amp;nbsp;and welcome to the SAS Support Communities!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First of all, thank you very much for providing test data in the form of a DATA step. (To avoid truncation of the string "FirstName" I used a &lt;FONT face="courier new,courier"&gt;:$9.&lt;/FONT&gt; informat specification for variables INFO in FIRST and ELEMENT in THIRD, but this is only a minor issue.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One way to create a dataset like THIRD is to apply PROC TRANSPOSE to a dataset (or view) which contains the information in THIRD in a &lt;EM&gt;wide&lt;/EM&gt; format. The latter can be created from SECOND in a DATA step, including the metadata information from FIRST in the form of a variable list. This variable list in turn can be written by PROC SQL into a macro variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* Create variable list from dataset FIRST */

proc sql noprint;
select info into :vlist separated by ' '
from first;
quit;

/* Create a temporary transposed version of the target dataset */

data wide;
retain &amp;amp;vlist;
if 0 then do;
  set second;
  call missing(of _all_);
end;
set second;
keep &amp;amp;vlist;
run;

/* Transpose from wide to long format */

proc transpose data=wide out=want(drop=id rename=(_name_=element col1=info));
by id notsorted;
var _all_;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The resulting dataset WANT is almost identical to dataset THIRD. The differences are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Variable ELEMENT in WANT has a default label from PROC TRANSPOSE (which could be deleted or modified with PROC DATASETS).&lt;/LI&gt;
&lt;LI&gt;Variable INFO in WANT has length 12 (but this depends on the data) and its&amp;nbsp;transposed (formerly) numeric values are right-justified in the $12 field, with periods rather than blanks for missing values.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;I didn't use variable REQUIRED, but just all variable names listed in dataset FIRST.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Obviously, dataset WIDE is similar to dataset SECOND. So, another option might be to start with a transposed version of SECOND and then modify it so as to insert all the desired missing values for Group, Class and Gender.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Apr 2019 22:12:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Performing-a-lookup-between-2-tables-using-a-loop-pattern/m-p/555233#M154500</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2019-04-30T22:12:54Z</dc:date>
    </item>
    <item>
      <title>Re: Performing a lookup between 2 tables using a loop pattern</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Performing-a-lookup-between-2-tables-using-a-loop-pattern/m-p/555270#M154516</link>
      <description>&lt;P&gt;Another way:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
  set FIRST;
  link varexists;
  if _N_=1 then 
        call execute('data WANT; set SECOND; length ELEMENT INFO $10; INFO=cats(ID);');
  else if VAREXISTS and REQUIRED='YES' then 
        call execute('INFO=cats('||INFO||');');
  else  call execute('INFO=".       ";');
  call execute('ELEMENT="'||INFO||'"; output;');
  return;
  varexists:
  DSID=open('WORK.SECOND');
  VAREXISTS=varnum(DSID,INFO);
  DSID=close(DSID);
run;
run;   &lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" style="height: 522px;" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TH class="l header" style="width: 92.7273px; height: 18px;" scope="col"&gt;ELEMENT&lt;/TH&gt;
&lt;TH class="l header" style="width: 74.5455px; height: 18px;" scope="col"&gt;INFO&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;ID&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;GROUP&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;CLASS&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;FIRSTNAME&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;TOM&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;CITY&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;PARIS&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;GENDER&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;AGE&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;25&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;ID&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;22&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;GROUP&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;STRONG&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CLASS&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;STRONG&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;FIRSTNAME&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;JOHN&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CITY&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;TOKYO&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GENDER&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AGE&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;20&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;ID&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;13&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GROUP&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CLASS&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;FIRSTNAME&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;PATRICIA&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CITY&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;ROMA&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GENDER&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AGE&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;18&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;ID&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;4&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GROUP&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CLASS&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;FIRSTNAME&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;JOHANA&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;CITY&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;LONDON&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;GENDER&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;.&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 18px;"&gt;
&lt;TD class="l data" style="width: 92.7273px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;AGE&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class="l data" style="width: 74.5455px; height: 18px;"&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;17&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 May 2019 04:05:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Performing-a-lookup-between-2-tables-using-a-loop-pattern/m-p/555270#M154516</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-01T04:05:32Z</dc:date>
    </item>
  </channel>
</rss>

