<?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 Proc sql to populate table in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Proc-sql-to-populate-table/m-p/585146#M75777</link>
    <description>&lt;P&gt;I have two tables : T1 and T2 As below-- T1:&lt;/P&gt;&lt;PRE class="lang-sql prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pln"&gt;ID &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; Age&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;22&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;23&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;24&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;T2: 22, 23, 24 are column names.&lt;/P&gt;&lt;PRE class="lang-sql prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pln"&gt;ID &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;22&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;23&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;24&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;10&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;50&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;120&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;20&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;60&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;130&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;30&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;70&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;220&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Now I need to create a third table as : Based on Age and ID of table 1, value in column is to be selected and column Dev is to be populated. Here column selection is done based of the row value of age in table 1.&lt;/P&gt;&lt;P&gt;Therefore answer would be:&lt;/P&gt;&lt;PRE class="lang-sql prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pln"&gt;ID &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; Age&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; Dev&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;22&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;10&lt;/SPAN&gt; 
&lt;SPAN class="lit"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;23&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;60&lt;/SPAN&gt; 
&lt;SPAN class="lit"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;24&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;220&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;For More Understanding:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;You see T1, ID = 1 has Age = 22&lt;/LI&gt;&lt;LI&gt;Cross reference T2,&lt;/LI&gt;&lt;LI&gt;where Row = 1(ID from T1)&lt;/LI&gt;&lt;LI&gt;and Column = 22 (Age from T2),&lt;/LI&gt;&lt;LI&gt;therefore answer = 10.&lt;/LI&gt;&lt;/UL&gt;</description>
    <pubDate>Fri, 30 Aug 2019 09:00:40 GMT</pubDate>
    <dc:creator>sq96</dc:creator>
    <dc:date>2019-08-30T09:00:40Z</dc:date>
    <item>
      <title>Proc sql to populate table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-sql-to-populate-table/m-p/585146#M75777</link>
      <description>&lt;P&gt;I have two tables : T1 and T2 As below-- T1:&lt;/P&gt;&lt;PRE class="lang-sql prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pln"&gt;ID &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; Age&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;22&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;23&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;24&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;T2: 22, 23, 24 are column names.&lt;/P&gt;&lt;PRE class="lang-sql prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pln"&gt;ID &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;22&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;23&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;24&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;10&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;50&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;120&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;20&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;60&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;130&lt;/SPAN&gt;
&lt;SPAN class="lit"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;30&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;70&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;220&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Now I need to create a third table as : Based on Age and ID of table 1, value in column is to be selected and column Dev is to be populated. Here column selection is done based of the row value of age in table 1.&lt;/P&gt;&lt;P&gt;Therefore answer would be:&lt;/P&gt;&lt;PRE class="lang-sql prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pln"&gt;ID &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; Age&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;|&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; Dev&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;22&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;10&lt;/SPAN&gt; 
&lt;SPAN class="lit"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;23&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;60&lt;/SPAN&gt; 
&lt;SPAN class="lit"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;24&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;|&lt;/SPAN&gt; &lt;SPAN class="lit"&gt;220&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;For More Understanding:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;You see T1, ID = 1 has Age = 22&lt;/LI&gt;&lt;LI&gt;Cross reference T2,&lt;/LI&gt;&lt;LI&gt;where Row = 1(ID from T1)&lt;/LI&gt;&lt;LI&gt;and Column = 22 (Age from T2),&lt;/LI&gt;&lt;LI&gt;therefore answer = 10.&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Fri, 30 Aug 2019 09:00:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-sql-to-populate-table/m-p/585146#M75777</guid>
      <dc:creator>sq96</dc:creator>
      <dc:date>2019-08-30T09:00:40Z</dc:date>
    </item>
    <item>
      <title>Re: Proc sql to populate table</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-sql-to-populate-table/m-p/585152#M75779</link>
      <description>&lt;P&gt;1)&amp;nbsp;Sas variable names like 22 23 .. are sas invalid names. You probably imported those tables from excel.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I believe that by importing the variables will be var1 var2 .. or alike. You may need to rename those variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;In order to display my solution I shall use names A22 A23 .. which are sas valid names.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2) possible solution:&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Step 1 transpose table from wide to long:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=T2  out=temp;
   by ID AGE;&lt;BR /&gt;   name = 'DEV';
   var A22 - A24;    /* first age up to last age */
run;&lt;BR /&gt;proc&amp;nbsp;sort&amp;nbsp;data=temp;&amp;nbsp;by&amp;nbsp;ID&amp;nbsp;AGE;&amp;nbsp;run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;thus will result&amp;nbsp; into table like:&lt;/P&gt;
&lt;PRE&gt;ID    AGE   DEV
1      22   10
1      22   20
1      22   30
2      23   50
2      23   60
2      23   70
...&lt;/PRE&gt;
&lt;P&gt;Next step will be to merge table T1 with the temp table by ID and AGE:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  merge T1  temp;
by ID AGE;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;It is not tested. In case of issues post the log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Aug 2019 09:33:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-sql-to-populate-table/m-p/585152#M75779</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2019-08-30T09:33:54Z</dc:date>
    </item>
  </channel>
</rss>

