<?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 PROCESSING in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28056#M6505</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks HaiKuo for helps,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will test run the program too. Learning SAS Programming with helps from all the experts here is fun &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;. Hope that I can master this skill one day!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Goodnite (12 Marc 2012, 11.57pm)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;mspak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Mar 2012 15:56:28 GMT</pubDate>
    <dc:creator>mspak</dc:creator>
    <dc:date>2012-03-12T15:56:28Z</dc:date>
    <item>
      <title>PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28052#M6501</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good days to all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I recently used SQL to generate possible pairs of geograhic zipcodes between one location to another. I have about 13,000 firms per year for 8 years. Therefore, number of firm-years is estimated to be 104,000. Then, I have to calculate the distance between every firm-year to all of the mutual fund companies (which is about 17,000 firms for each year). By the end, I have to calculate mutual fund density, which is defined as log (1+mutual fund companies with distance within 60 miles radius from the firm).&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The submitted program was run for 7 hours but I failed to generate output due to insufficient spaces. My notebook has free space about 365 GB but yet insufficient for storing the output. I am looking forward any response which can solve the program. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My concerns:&lt;/P&gt;&lt;P&gt;1. How to submit the program in batches?&lt;/P&gt;&lt;P&gt;2. How can I estimate the processing time. I couldn't find any indicator on the estimated time and storage needed for running programs. &lt;/P&gt;&lt;P&gt;3. Any recommendations and suggestions...etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following is my program (with libname "geog"):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create table geog.fundcom as&lt;/P&gt;&lt;P&gt;select a.fyear, tic, crsp_fundn, zipcitydistance(zipcode, zip)as mutualdist&lt;/P&gt;&lt;P&gt;from geog.comp a , geog.Mutualcom b&lt;/P&gt;&lt;P&gt;where a.fyear=b.year &lt;/P&gt;&lt;P&gt;group by a.fyear,tic;&lt;/P&gt;&lt;P&gt;having not missing(calculated mutualdist);&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table geog.mutualnum as&lt;/P&gt;&lt;P&gt;select fyear, tic, sum(0&amp;lt;=mutualdist&amp;lt;=60) as mutualnum &lt;/P&gt;&lt;P&gt;from geog.fundcom&lt;/P&gt;&lt;P&gt;group by tic, fyear;&lt;/P&gt;&lt;P&gt;quit; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data geog.mutualdensity; set geog.mutualnum;&lt;/P&gt;&lt;P&gt;mutual_density = log (1+mutualnum);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mspak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 11 Mar 2012 09:09:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28052#M6501</guid>
      <dc:creator>mspak</dc:creator>
      <dc:date>2012-03-11T09:09:26Z</dc:date>
    </item>
    <item>
      <title>PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28053#M6502</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your code shouldn't have worked as posted&amp;nbsp; The first proc sql had a semicolon after the group by clause.&amp;nbsp; Plus, why create a big file only to eliminate the unnecessary records?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Doe the following accomplish the initial step you wanted?:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table geog.fundcom as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select a.fyear,&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; tic,&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; crsp_fundn,&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; zipcitydistance(zipcode, zip)as mutualdist,&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; count(*) as mutualnum&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from geog.comp a , geog.Mutualcom b&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where a.fyear=b.year&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by a.fyear,tic&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; having calculated mutualdist between 0 and 60&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 11 Mar 2012 15:27:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28053#M6502</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-03-11T15:27:32Z</dc:date>
    </item>
    <item>
      <title>PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28054#M6503</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks art297 for your kind helps especially to me who is a new SAS user. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; I ran the program and it proves successful. There are many obervations with different pairs of possible origin and destination. In fact I wish to have mutualnum for each tic-fyear. Therefore, the crsp_fundn is not important to be included. I have modified it to generate my desired output format. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I came across a data step approach which can significantly reduce the processing time, namely DATA Step Hash Object. I am not sure whether this method can be used for this example and can this method further reduces the data storage and time? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;mspak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 14:11:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28054#M6503</guid>
      <dc:creator>mspak</dc:creator>
      <dc:date>2012-03-12T14:11:28Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28055#M6504</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mspak,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My solution to your another question could be applied to this senario without many changes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=_:);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set geog.mutualcom (obs=1 rename=(year=fyear zip=_zip));&lt;/P&gt;&lt;P&gt; dcl hash h(dataset:'geog.mutualcom(rename=(year=fyear zip=_zip))', multidata:'yes', hashexp:16);&lt;/P&gt;&lt;P&gt; h.definekey('fyear');&lt;/P&gt;&lt;P&gt; h.definedata('_zip');&lt;/P&gt;&lt;P&gt; h.definedone();&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set geog.comp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _ct=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _rc=find();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do while (_rc=0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if .&amp;lt; zipcitydistance(zipcode, _zip)&amp;lt;=60 then _ct+1;&lt;/P&gt;&lt;P&gt; _rc=find_next();&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mutual_density=log(1+_ct);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;of couse not tested, so my code is subjected to typo and other errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edit: Before running the code, I would clean up the tables to make sure all of the zip codes are legit per zipcitydistance().&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 14:41:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28055#M6504</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-03-12T14:41:08Z</dc:date>
    </item>
    <item>
      <title>PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28056#M6505</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks HaiKuo for helps,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will test run the program too. Learning SAS Programming with helps from all the experts here is fun &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;. Hope that I can master this skill one day!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Goodnite (12 Marc 2012, 11.57pm)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;mspak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2012 15:56:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28056#M6505</guid>
      <dc:creator>mspak</dc:creator>
      <dc:date>2012-03-12T15:56:28Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28057#M6506</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi art297 and Hai.kuo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tested program suggested by Hai.kuo, some error messages on log:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;16&amp;nbsp;&amp;nbsp; data geog.want (drop=_:);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;17&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_=1 then do;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;19&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set geog.mutualcom (obs=1 rename=(year=fyear zip=_zip));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;21&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;22&amp;nbsp;&amp;nbsp; dcl hash h(dataset:'geog.mutualcom(rename=(year=fyear zip=_zip))', multidata:'yes',&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;22 ! hashexp:16);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;23&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;24&amp;nbsp;&amp;nbsp; h.definekey('fyear');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;25&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;26&amp;nbsp;&amp;nbsp; h.definedata('_zip');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;27&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;28&amp;nbsp;&amp;nbsp; h.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;29&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;30&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;31&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;32&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;33&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;34&amp;nbsp;&amp;nbsp; set geog.comp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;35&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ct=0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;37&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=find();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 71&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;ERROR 71-185: The FIND function call does not have enough arguments.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;39&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while (_rc=0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;41&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if .&amp;lt; zipcitydistance(zipcode, _zip)&amp;lt;=60 then _ct+1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;43&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;44&amp;nbsp;&amp;nbsp; _rc=find_next();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 68&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;ERROR 68-185: The function FIND_NEXT is unknown, or cannot be accessed.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;45&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;46&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;47&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;48&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mutual_density=log(1+_ct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;49&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;50&amp;nbsp;&amp;nbsp; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;WARNING: The data set GEOG.WANT may be incomplete.&amp;nbsp; When this step was stopped there were 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; observations and 7 variables.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;NOTE: DATA statement used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.06 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for help. I carefully study the data generated by submitting the program suggested by art297, the output is strange as firms in the same year have the same nutualnum and mutual_density. I came across the same problem too. The count function for firms within 60-mile radius is tricky, I re-calculated mutualnum using sum function instead as per follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table mutualnum as&lt;/P&gt;&lt;P&gt;select fyear, tic, sum(0&amp;lt;=mutualdist&amp;lt;=60) as mutualnum1 &lt;/P&gt;&lt;P&gt;from geog.fundcom&lt;/P&gt;&lt;P&gt;group by tic, fyear;&lt;/P&gt;&lt;P&gt;quit; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table geog.mutualden as&lt;/P&gt;&lt;P&gt;select unique fyear, tic, mutualnum1, log(1+ mutualnum1) as mutual_density&lt;/P&gt;&lt;P&gt;from mutualnum&lt;/P&gt;&lt;P&gt;having not missing (calculated mutual_density);&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;quit; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The correct result can be achieved by using sum function. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think I must carefully study why and in what circumstances that count function can be tricky?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;mspak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Mar 2012 03:26:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28057#M6506</guid>
      <dc:creator>mspak</dc:creator>
      <dc:date>2012-03-13T03:26:41Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28058#M6507</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;oops. There were some obvious errors, I did not reference the hash name. Try this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=_:);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then do;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set geog.mutualcom (obs=1 rename=(year=fyear zip=_zip));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; dcl hash h(dataset:'geog.mutualcom(rename=(year=fyear zip=_zip))', multidata:'yes', hashexp:16);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; h.definekey('fyear');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; h.definedata('_zip');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; h.definedone();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set geog.comp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _ct=0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _rc=h.find();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do while (_rc=0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if .&amp;lt; zipcitydistance(zipcode, _zip)&amp;lt;=60 then _ct+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; _rc=h.find_next();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mutual_density=log(1+_ct);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Mar 2012 11:06:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28058#M6507</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-03-13T11:06:45Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL PROCESSING</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28059#M6508</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hai.Kuo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and I will try again. I just download a few articles relating to thsi topics so that I can make use of this efficient function in future. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Time now at my place: 7.19pm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;MEI SEN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Mar 2012 11:19:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PROC-SQL-PROCESSING/m-p/28059#M6508</guid>
      <dc:creator>mspak</dc:creator>
      <dc:date>2012-03-13T11:19:04Z</dc:date>
    </item>
  </channel>
</rss>

