<?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: alternatives to recursive sql/ deducing the rows in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205634#M13653</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As consultants we must sometimes challenge requirements and show our customers alternatives. But o.k., I don't have the real picture here. Below a code sample which could work. The "hash" bit is for avoiding repeated values as this is not only "ugly" but depending on how many records you're having could also lead to very long strings eventually exceeding the defined target variable length.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; infile datalines truncover dlm=' ';&lt;/P&gt;&lt;P&gt;&amp;nbsp; input (Customer PA1 PA2 PA3) ($);&lt;/P&gt;&lt;P&gt;&amp;nbsp; datalines;&lt;/P&gt;&lt;P&gt;A H M L&lt;/P&gt;&lt;P&gt;A H L M&lt;/P&gt;&lt;P&gt;A H M H&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strip(name), cats('L_',name) into :PA_List separated by ' '&amp;nbsp; , :PA_new_list separated by ' '&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; from dictionary.columns&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname='WORK' and memname='HAVE' and upcase(name) like 'PA%'&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want(drop=_: &amp;amp;PA_List);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by customer;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length _pa_unique $20 _vname $32;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl hash h(hashexp:5);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.defineKey('customer','_pa_unique','_vname');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.defineDone();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length &amp;amp;PA_new_list $200;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain &amp;amp;PA_new_list;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array pa_arr {*} &amp;amp;PA_List;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array pa_new_arr {*} &amp;amp;PA_new_list;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _i=1 to dim(pa_arr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _pa_unique=pa_arr[_i];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _vname=vname(pa_arr[_i]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if h.check() ne 0 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa_new_arr[_i]=catx(' &amp;amp; ',pa_arr[_i],pa_new_arr[_i]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if last.customer then output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 18 Jul 2015 02:55:51 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2015-07-18T02:55:51Z</dc:date>
    <item>
      <title>alternatives to recursive sql/ deducing the rows</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205631#M13650</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi I have a data set with one to many relation. I want to reduce it to 1-1 by concatenating the distinct values for each column&lt;/P&gt;&lt;P&gt;Here is an example&lt;/P&gt;&lt;P&gt;I have a data set called Customer and Product Affiliation (PA). One customer can have multiple PA for different times. &lt;/P&gt;&lt;P&gt;Here is the input&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;Customer&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;PA1&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;PA2&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;P&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;PA3&lt;/P&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;H&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;M&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;L&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;H&lt;/TD&gt;&lt;TD&gt;L&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;H&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;H&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;Desired Output&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;Customer&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;PA1&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;PA2&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;P&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;PA3&lt;/P&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;H&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;M &amp;amp; L&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;L &amp;amp; M &amp;amp; H&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have multiple PA columns. I want to know if there is a generic sas code I can apply&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;VMInc&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Jul 2015 21:58:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205631#M13650</guid>
      <dc:creator>vminc</dc:creator>
      <dc:date>2015-07-17T21:58:50Z</dc:date>
    </item>
    <item>
      <title>Re: alternatives to recursive sql/ deducing the rows</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205632#M13651</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It is most of the time not a good idea to organize data the way you want to. The next thing you'll be asking for is having the strings sorted (so that it's not the one time "L &amp;amp; M &amp;amp; H" and another time "H &amp;amp; L &amp;amp; M").&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What do you want to achieve? Why do you want the data transformed this way? There might be other options.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What's normally a good thing from a data organization point of view is to have data in a long structure. That's what below code does:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; infile datalines truncover dlm=' ';&lt;/P&gt;&lt;P&gt;&amp;nbsp; input (Customer PA1 PA2 PA3) ($);&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;A H M L&lt;/P&gt;&lt;P&gt;A H L M&lt;/P&gt;&lt;P&gt;A H M H&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data demo(drop= pa:);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length var_name $32 var_value $8;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array pa_arr pa:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do over pa_arr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_name=vname(pa_arr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_value=pa_arr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jul 2015 01:31:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205632#M13651</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-07-18T01:31:41Z</dc:date>
    </item>
    <item>
      <title>Re: alternatives to recursive sql/ deducing the rows</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205633#M13652</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Patrick&lt;/P&gt;&lt;P&gt; End user wants just one record per customer. Sorting the values internally is not needed. What is needed is concatenation of rows .&lt;/P&gt;&lt;P&gt;Even if the final output has repeated values..that is fine.&lt;/P&gt;&lt;P&gt;Example&lt;/P&gt;&lt;P&gt;A&amp;nbsp;&amp;nbsp; H&amp;amp;H&amp;amp;H&amp;nbsp; M&amp;amp;L&amp;amp;M&amp;nbsp;&amp;nbsp; L&amp;amp;M&amp;amp;H&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jul 2015 02:14:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205633#M13652</guid>
      <dc:creator>vminc</dc:creator>
      <dc:date>2015-07-18T02:14:36Z</dc:date>
    </item>
    <item>
      <title>Re: alternatives to recursive sql/ deducing the rows</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205634#M13653</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As consultants we must sometimes challenge requirements and show our customers alternatives. But o.k., I don't have the real picture here. Below a code sample which could work. The "hash" bit is for avoiding repeated values as this is not only "ugly" but depending on how many records you're having could also lead to very long strings eventually exceeding the defined target variable length.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; infile datalines truncover dlm=' ';&lt;/P&gt;&lt;P&gt;&amp;nbsp; input (Customer PA1 PA2 PA3) ($);&lt;/P&gt;&lt;P&gt;&amp;nbsp; datalines;&lt;/P&gt;&lt;P&gt;A H M L&lt;/P&gt;&lt;P&gt;A H L M&lt;/P&gt;&lt;P&gt;A H M H&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strip(name), cats('L_',name) into :PA_List separated by ' '&amp;nbsp; , :PA_new_list separated by ' '&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; from dictionary.columns&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname='WORK' and memname='HAVE' and upcase(name) like 'PA%'&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want(drop=_: &amp;amp;PA_List);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by customer;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length _pa_unique $20 _vname $32;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl hash h(hashexp:5);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.defineKey('customer','_pa_unique','_vname');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.defineDone();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length &amp;amp;PA_new_list $200;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain &amp;amp;PA_new_list;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array pa_arr {*} &amp;amp;PA_List;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array pa_new_arr {*} &amp;amp;PA_new_list;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _i=1 to dim(pa_arr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _pa_unique=pa_arr[_i];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _vname=vname(pa_arr[_i]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if h.check() ne 0 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa_new_arr[_i]=catx(' &amp;amp; ',pa_arr[_i],pa_new_arr[_i]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if last.customer then output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jul 2015 02:55:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205634#M13653</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-07-18T02:55:51Z</dc:date>
    </item>
    <item>
      <title>Re: alternatives to recursive sql/ deducing the rows</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205635#M13654</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Although I agree with &lt;A __default_attr="12296" __jive_macro_name="user" class="jive_macro jive_macro_user" href="https://communities.sas.com/"&gt;&lt;/A&gt; that this kind of wide data organisation is not very practical, here is a way to get it for any number of PA, with sorted value lists:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data have;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;input (Customer PA1 PA2 PA3) ($:);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;datalines;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;A H M L&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;A H L M&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;A H M H&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data have0 / view=have0;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;set have;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;obs = _n_;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc transpose data=have0 out=have1(drop=obs rename=col1=PA);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;by obs customer;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;var pa:;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc sort data=have1 nodupkey; by customer _NAME_ PA; run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data want0(rename=_NAME_=ID);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;length list $100;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;do until(last.customer);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(last._NAME_);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have1; by customer _NAME_;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list = catx(" &amp;amp; ", list, PA);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(list);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc transpose data=want0 out=want(drop=_NAME_);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;by customer;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;id ID;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;var list;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jul 2015 03:03:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205635#M13654</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2015-07-18T03:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: alternatives to recursive sql/ deducing the rows</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205636#M13655</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote" modifiedtitle="true"&gt;
&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;As consultants we must sometimes challenge requirements and show our customers alternatives. &lt;/SPAN&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;:smileylove: X 1000&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jul 2015 04:19:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205636#M13655</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-07-18T04:19:20Z</dc:date>
    </item>
    <item>
      <title>Re: alternatives to recursive sql/ deducing the rows</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205637#M13656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The most efficient way is ARRAY. But I am too lazy, so use SQL instead of .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;data&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;have&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;input&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;Customer&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;PA1&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;PA2&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;PA3&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;$&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;:&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;datalines&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="cards-data" style="color: #bb9905; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;A H M L&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="cards-data" style="color: #bb9905; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;A H L M&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="cards-data" style="color: #bb9905; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;A H M H&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;run&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;proc&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;sql&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;create&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;table&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;temp&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;as&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;select&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;distinct&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;Customer&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string" style="color: #800080; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;'PA1'&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;length&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="numeric" style="color: #008080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;10&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;as&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;id&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;PA1&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;as&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;from&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;have&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;union&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;all&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;select&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;distinct&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;Customer&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string" style="color: #800080; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;'PA2'&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;length&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="numeric" style="color: #008080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;10&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;as&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;id&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;PA2&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;as&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;from&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;have&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;union&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;all&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;select&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;distinct&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;Customer&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string" style="color: #800080; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;'PA3'&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;length&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="numeric" style="color: #008080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;10&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;as&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;id&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;PA3&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;as&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;from&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;have&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;quit&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;data&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;temp1&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;set&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;temp&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;by&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;Customer&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;id&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;length&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;v&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;$&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="numeric" style="color: #008080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;200&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;retain&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;v&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;v&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;catx&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string" style="color: #800080; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;' &amp;amp; '&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;v&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;value&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;if&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;last.id&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;then&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;do&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;output&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;call&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;missing&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;v&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;end&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;drop&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;value&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;run&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;proc&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;transpose&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;data&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;temp1&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;out&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;want&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;drop&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;_&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;:&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;by&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;Customer&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;id&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;id&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;var&lt;/SPAN&gt;&lt;SPAN class="text" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="color: #0000ff; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;v&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sec-keyword" style="color: #000080; font-weight: bold; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;run&lt;/SPAN&gt;&lt;SPAN class="sep" style="color: black; font-family: 'Courier New', Menlo, 'Lucida Console'; font-size: 16px; background-color: #f0f1f2;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jul 2015 06:45:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/alternatives-to-recursive-sql-deducing-the-rows/m-p/205637#M13656</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-07-18T06:45:30Z</dc:date>
    </item>
  </channel>
</rss>

