<?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: monthly sales in a row wise without proc tranpose in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149765#M29593</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree, either TABULATE or REPORT is a better choice than MEANS or Data step.&lt;/P&gt;&lt;P&gt;cynthia&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Dec 2014 03:55:51 GMT</pubDate>
    <dc:creator>Cynthia_sas</dc:creator>
    <dc:date>2014-12-18T03:55:51Z</dc:date>
    <item>
      <title>monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149756#M29584</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I have a data set like this&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;prod-id date sales&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;101 01/15/2014 500&lt;/P&gt;&lt;P&gt;101 01/15/2014 600&lt;/P&gt;&lt;P&gt;101 02/12/2014 500&lt;/P&gt;&lt;P&gt;101 12/15/2014 800&lt;/P&gt;&lt;P&gt;102 01/18/2014 600&lt;/P&gt;&lt;P&gt;102 01/15/2014 600&lt;/P&gt;&lt;P&gt;102 02/12/2014 400&lt;/P&gt;&lt;P&gt;102 03/15/2014 500&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i want product wise monthly sales in a row &lt;/P&gt;&lt;P&gt;like&lt;/P&gt;&lt;P&gt; Prod_id jan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feb ...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dec&lt;/P&gt;&lt;P&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;102&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 400&amp;nbsp;&amp;nbsp; 500....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in data step(without proc transpose) and sql queries.&lt;/P&gt;&lt;P&gt;Please help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Dec 2014 11:07:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149756#M29584</guid>
      <dc:creator>kumarK</dc:creator>
      <dc:date>2014-12-14T11:07:42Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149757#M29585</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why ? Why couldn't use proc transpose or SQL?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;
data have;
input id date : mmddyy10. sales&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;
cards;
101 01/15/2014 500
101 01/15/2014 600
101 02/12/2014 500
101 12/15/2014 800
102 01/18/2014 600
102 01/15/2014 600
102 02/12/2014 400
102 03/15/2014 500
;
run;
proc summary data=have nway;
 class id date;
 format date monyy7.;
 var sales;
 output out=temp(drop=_:) sum=;
run;
proc sql;
 select distinct catt('temp(where=(id=',id,' and year(date)=',year(date),' and month(date)=',month(date),')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename=(sales=',put(mdy(month(date),1,year(date)),monyy7.),'))') 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into : list separated by ' ' from temp;
quit;
%put &amp;amp;list;
data want;
 merge &amp;amp;list ;
 by id;
 drop date;
run;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Dec 2014 11:39:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149757#M29585</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-12-14T11:39:21Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149758#M29586</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input id date : mmddyy10. sales&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;101 01/15/2014 500&lt;/P&gt;&lt;P&gt;101 01/15/2014 600&lt;/P&gt;&lt;P&gt;101 02/12/2014 500&lt;/P&gt;&lt;P&gt;101 12/15/2014 800&lt;/P&gt;&lt;P&gt;102 01/18/2014 600&lt;/P&gt;&lt;P&gt;102 01/15/2014 600&lt;/P&gt;&lt;P&gt;102 02/12/2014 400&lt;/P&gt;&lt;P&gt;102 03/15/2014 500&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc summary data=have nway;&lt;/P&gt;&lt;P&gt; class id date;&lt;/P&gt;&lt;P&gt; format date monyy7.;&lt;/P&gt;&lt;P&gt; var sales;&lt;/P&gt;&lt;P&gt; output out=temp(drop=_:) sum=;&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;data x;&lt;/P&gt;&lt;P&gt; set temp;&lt;/P&gt;&lt;P&gt; d=put(date,monyy7.);&lt;/P&gt;&lt;P&gt; drop date;&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;data _null_;&lt;/P&gt;&lt;P&gt; set x end=last;&lt;/P&gt;&lt;P&gt; if _n_ eq 1 then call execute('data want;merge ');&lt;/P&gt;&lt;P&gt; call execute(catt('x(where=(id=',id,' and d="',d,'") rename=(sales=',d,'))'));&lt;/P&gt;&lt;P&gt; if last then call execute('; by id;run;');&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;&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;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Dec 2014 11:47:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149758#M29586</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-12-14T11:47:41Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149759#M29587</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for reply. In one of the interview he asked me without using transpose. Thanksalot for your time.&lt;/P&gt;&lt;P&gt;we can use sql queries.can u please suggest by sql query.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Dec 2014 12:10:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149759#M29587</guid>
      <dc:creator>kumarK</dc:creator>
      <dc:date>2014-12-14T12:10:17Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149760#M29588</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No. SQL is not good for transposing data. I would like use proc transpose if the table is not big.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Dec 2014 13:13:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149760#M29588</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-12-14T13:13:20Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149761#M29589</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Supposed that you have more sales in different months, try this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i=1 by 1 until (last.id);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array mon&amp;nbsp; Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; n=month(date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; mon(n)+sales;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.id then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; format date mmddyy10.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; drop n;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Dec 2014 15:05:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149761#M29589</guid>
      <dc:creator>slchen</dc:creator>
      <dc:date>2014-12-14T15:05:42Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149762#M29590</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;proc tabulate data=have;&lt;/P&gt;&lt;P&gt;format date monname3.;&lt;/P&gt;&lt;P&gt;class prod_id date;&lt;/P&gt;&lt;P&gt;var sales;&lt;/P&gt;&lt;P&gt;table prod_id,date=' '*sales=' '*sum=' ';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Dec 2014 21:41:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149762#M29590</guid>
      <dc:creator>stat_sas</dc:creator>
      <dc:date>2014-12-14T21:41:13Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149763#M29591</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First, I simulate your "have" table:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have(keep=id zDate zMth zSales);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; dt_0='1jan2014'd;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do id = 101 to 120;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; do j = 1 to 20;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zDate = dt_0 +int(360*ranuni(3));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zMth = month(zDate);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zSales = int(100*ranuni(3));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have; by id zDate; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If one is looking at sales for only a given calendar year, then a solution is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want(keep=id jan--dec);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; length id 8.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array Mth jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; retain _all_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by id zMth;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if first.id then call missing(of Mth(*));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if first.zMth then TSales=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TSales+zSales;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if last.zMth then Mth(zMth)=TSales;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if last.id then output;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 21:30:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149763#M29591</guid>
      <dc:creator>billfish</dc:creator>
      <dc:date>2014-12-17T21:30:00Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149764#M29592</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After the statement: &lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You need to add the following statement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if first.id then call missing(of mon(*));&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 22:17:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149764#M29592</guid>
      <dc:creator>billfish</dc:creator>
      <dc:date>2014-12-17T22:17:40Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149765#M29593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree, either TABULATE or REPORT is a better choice than MEANS or Data step.&lt;/P&gt;&lt;P&gt;cynthia&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Dec 2014 03:55:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149765#M29593</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2014-12-18T03:55:51Z</dc:date>
    </item>
    <item>
      <title>Re: monthly sales in a row wise without proc tranpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149766#M29594</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array Mth jan feb mar apr may jun jul aug sep oct nov dec;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by prod_id;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if first.prod_id then call missing(of Mth(*));&lt;/P&gt;&lt;P&gt;&amp;nbsp; Mth(month(date))+Sales;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if last.prod_id then output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Dec 2014 05:13:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/monthly-sales-in-a-row-wise-without-proc-tranpose/m-p/149766#M29594</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2014-12-18T05:13:33Z</dc:date>
    </item>
  </channel>
</rss>

