<?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: Arrays in Proc SQL in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601604#M16739</link>
    <description>&lt;P&gt;This type of case typically calls for transformaing your data, from wide to long.&lt;/P&gt;</description>
    <pubDate>Tue, 05 Nov 2019 09:52:29 GMT</pubDate>
    <dc:creator>LinusH</dc:creator>
    <dc:date>2019-11-05T09:52:29Z</dc:date>
    <item>
      <title>Arrays in Proc SQL</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601593#M16736</link>
      <description>&lt;P&gt;Hello there, I am relatively new to SAS. Until now I've been mainly using SAS wizards in SAS Enterprise Guide.&lt;/P&gt;&lt;P&gt;Recently I got a got code from colleague with proc SQL.&lt;/P&gt;&lt;P&gt;It is quite repetitive, so I tried to amend using arrays, but with no success. Is that possible at all. Here is the code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;

   select Year,

count(clientID) as Disbursed,

sum(MOB1_30) as MOB1 , sum(MOB2_30) as MOB2 , sum(MOB3_30) as MOB3 ,

sum(MOB4_30) as MOB4 , sum(MOB5_30) as MOB5 , sum(MOB6_30) as MOB6 ,

sum(MOB7_30) as MOB7 , sum(MOB8_30) as MOB8 , sum(MOB9_30) as MOB9 ,

sum(MOB10_30) as MOB10 , sum(MOB11_30) as MOB11 , sum(MOB12_30) as MOB12 , sum(MOB13_30) as MOB13 ,

sum(MOB14_30) as MOB14 , sum(MOB15_30) as MOB15 , sum(MOB16_30) as MOB16 , sum(MOB17_30) as MOB17 ,

sum(MOB18_30) as MOB18 , sum(MOB19_30) as MOB19 , sum(MOB20_30) as MOB20 , sum(MOB21_30) as MOB21 ,

sum(MOB22_30) as MOB22 , sum(MOB23_30) as MOB23 , sum(MOB24_30) as MOB24 , sum(MOB25_30) as MOB25

from WORK.WorkingFile group by Year ;&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;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kristina&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2019 08:53:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601593#M16736</guid>
      <dc:creator>KristinaT</dc:creator>
      <dc:date>2019-11-05T08:53:49Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays in Proc SQL</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601599#M16737</link>
      <description>&lt;P&gt;You cannot use arrays in proc sql. Only in a datastep.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2019 09:11:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601599#M16737</guid>
      <dc:creator>rudfaden</dc:creator>
      <dc:date>2019-11-05T09:11:40Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays in Proc SQL</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601600#M16738</link>
      <description>&lt;P&gt;SQL does not have the concept of arrays.&lt;/P&gt;
&lt;P&gt;You can use a macro to create the repeating code automatically:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro help_me;

proc sql;
select
  Year,
  count(clientID) as Disbursed
%do i = 1 %to 25;
  ,sum(MOB&amp;amp;i._30) as MOB&amp;amp;i.
%end;
from WORK.WorkingFile group by Year;

%mend;

%help_me&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 05 Nov 2019 09:17:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601600#M16738</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-11-05T09:17:47Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays in Proc SQL</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601604#M16739</link>
      <description>&lt;P&gt;This type of case typically calls for transformaing your data, from wide to long.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2019 09:52:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601604#M16739</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2019-11-05T09:52:29Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays in Proc SQL</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601609#M16740</link>
      <description>&lt;P&gt;And you should seriously consider to structure your variable names differently, as you can then use wildcards or variable lists:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc summary data=workingfile nway sum;
class year account;
var mob30_1-mob30_25;
output
  out=int
  sum(mob30_1-mob30_25)=
;
run;

proc summary data=int nway sum;
class year;
var mob30_1-mob30_25;
output
  out=want (
    drop=_type_
    rename=(_freq_=disbursed)
  )
  sum(mob30_1-mob30_25)=
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 05 Nov 2019 10:05:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601609#M16740</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-11-05T10:05:07Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays in Proc SQL</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601695#M16752</link>
      <description>&lt;P&gt;SQL doesn't support arrays or variable lists.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PROC MEANS is a proc designed to calculate summary statistics and will be easier to run than your current approach. It's dynamic so if the number of variables change it can as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/297841"&gt;@KristinaT&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello there, I am relatively new to SAS. Until now I've been mainly using SAS wizards in SAS Enterprise Guide.&lt;/P&gt;
&lt;P&gt;Recently I got a got code from colleague with proc SQL.&lt;/P&gt;
&lt;P&gt;It is quite repetitive, so I tried to amend using arrays, but with no success. Is that possible at all. Here is the code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;

   select Year,

count(clientID) as Disbursed,

sum(MOB1_30) as MOB1 , sum(MOB2_30) as MOB2 , sum(MOB3_30) as MOB3 ,

sum(MOB4_30) as MOB4 , sum(MOB5_30) as MOB5 , sum(MOB6_30) as MOB6 ,

sum(MOB7_30) as MOB7 , sum(MOB8_30) as MOB8 , sum(MOB9_30) as MOB9 ,

sum(MOB10_30) as MOB10 , sum(MOB11_30) as MOB11 , sum(MOB12_30) as MOB12 , sum(MOB13_30) as MOB13 ,

sum(MOB14_30) as MOB14 , sum(MOB15_30) as MOB15 , sum(MOB16_30) as MOB16 , sum(MOB17_30) as MOB17 ,

sum(MOB18_30) as MOB18 , sum(MOB19_30) as MOB19 , sum(MOB20_30) as MOB20 , sum(MOB21_30) as MOB21 ,

sum(MOB22_30) as MOB22 , sum(MOB23_30) as MOB23 , sum(MOB24_30) as MOB24 , sum(MOB25_30) as MOB25

from WORK.WorkingFile group by Year ;&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;&lt;/P&gt;
&lt;P&gt;Thank you,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kristina&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2019 16:20:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Arrays-in-Proc-SQL/m-p/601695#M16752</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-11-05T16:20:59Z</dc:date>
    </item>
  </channel>
</rss>

