<?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: How to build an crosstab in SAS Web Report Studio</title>
    <link>https://communities.sas.com/t5/SAS-Web-Report-Studio/How-to-build-an-crosstab/m-p/253209#M2119</link>
    <description>&lt;P&gt;I'm going to show you a step-by-step approach, with the warning that I might not program it this way in real life.&amp;nbsp; I might look for ways to combine some of these steps.&amp;nbsp; If you are actually processing tens of millions of records, we can look at some of the alternatives.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Prepare the data by first creating all the variables you might need.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data prepared;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;year = year(creation_date);&lt;/P&gt;
&lt;P&gt;month = month(creation_date);&lt;/P&gt;
&lt;P&gt;if validation_date &amp;gt; . then validated = 'Y';&lt;/P&gt;
&lt;P&gt;if sold_out_date &amp;gt; . then sold_out = 'Y';&lt;/P&gt;
&lt;P&gt;if creation_date &amp;gt; . then created='Y';&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then summarize as needed to get the various subtotals you require:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc summary data=prepared nway;&lt;/P&gt;
&lt;P&gt;class year month;&lt;/P&gt;
&lt;P&gt;var amount;&lt;/P&gt;
&lt;P&gt;where sold_out='Y';&lt;/P&gt;
&lt;P&gt;output out=sum1 (keep=year month amount_sold_out) sum=amount_sold_out;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc summary data=prepared nway;&lt;/P&gt;
&lt;P&gt;class year month;&lt;/P&gt;
&lt;P&gt;var amount;&lt;/P&gt;
&lt;P&gt;where created='Y';&lt;/P&gt;
&lt;P&gt;output out=sum2 (keep=year month amount_created) sum=amount_created;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;proc summary data=prepared nway;&lt;/P&gt;
&lt;P&gt;class year month;&lt;/P&gt;
&lt;P&gt;var amount;&lt;/P&gt;
&lt;P&gt;where validated='Y';&lt;/P&gt;
&lt;P&gt;output out=sum3 (keep=year month amount_validated) sum=amount_validated;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then combine all the summaries:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;merge sum1 (in=in1) sum2 (in=in2) sum3 (in=in3);&lt;/P&gt;
&lt;P&gt;by year month;&lt;/P&gt;
&lt;P&gt;if in1=0 then amount_sold_out=0;&lt;/P&gt;
&lt;P&gt;if in2=0 then amount_created=0;&lt;/P&gt;
&lt;P&gt;if in3=0 then amount_validated=0;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This gives you a data set that is ready (or at least close enough) for printing.&amp;nbsp; You can experiment with it, fiddle with it if you would like (for example, converting month to a 3-letter abbreviation) since this is a small data set and won't take too much time to process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 29 Feb 2016 15:41:41 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2016-02-29T15:41:41Z</dc:date>
    <item>
      <title>How to build an crosstab</title>
      <link>https://communities.sas.com/t5/SAS-Web-Report-Studio/How-to-build-an-crosstab/m-p/253132#M2117</link>
      <description>&lt;P&gt;Hello&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I've got on databuilder a table with this kind of data &amp;amp;colon;&lt;/P&gt;&lt;DIV class="cms_table"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;amount&lt;/TD&gt;&lt;TD&gt;creation date&lt;/TD&gt;&lt;TD&gt;validation date&lt;/TD&gt;&lt;TD&gt;sold out date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;10 000&lt;/TD&gt;&lt;TD&gt;12/12/2015&lt;/TD&gt;&lt;TD&gt;18/01/2015&lt;/TD&gt;&lt;TD&gt;02/02/2016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;23 000&lt;/TD&gt;&lt;TD&gt;05/01/2016&lt;/TD&gt;&lt;TD&gt;12/01/2016&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;45 000&lt;/TD&gt;&lt;TD&gt;02/02/2016&lt;/TD&gt;&lt;TD&gt;10/02/2016&lt;/TD&gt;&lt;TD&gt;15/02/2016&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;I need to build a report like that :&lt;/P&gt;&lt;DIV class="cms_table"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Month&lt;/TD&gt;&lt;TD&gt;Amount created&lt;/TD&gt;&lt;TD&gt;Amount validated&lt;/TD&gt;&lt;TD&gt;Amount sold out&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2015&lt;/TD&gt;&lt;TD&gt;Dec&lt;/TD&gt;&lt;TD&gt;10 000&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2016&lt;/TD&gt;&lt;TD&gt;Jan&lt;/TD&gt;&lt;TD&gt;23 000&lt;/TD&gt;&lt;TD&gt;33 000&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2016&lt;/TD&gt;&lt;TD&gt;Feb&lt;/TD&gt;&lt;TD&gt;45 000&lt;/TD&gt;&lt;TD&gt;45 000&lt;/TD&gt;&lt;TD&gt;55 000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;January 2016 : 33 000 € in amount validated bacause 2 lines have been validated (1 and 2)&lt;/P&gt;&lt;P&gt;February 2016 : 55 000 € in amount sold out brcause 2 lines have been sold out (1 and 3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can i do ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Aurélien&lt;/P&gt;</description>
      <pubDate>Mon, 29 Feb 2016 09:09:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Web-Report-Studio/How-to-build-an-crosstab/m-p/253132#M2117</guid>
      <dc:creator>aurelienchenet</dc:creator>
      <dc:date>2016-02-29T09:09:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to build an crosstab</title>
      <link>https://communities.sas.com/t5/SAS-Web-Report-Studio/How-to-build-an-crosstab/m-p/253209#M2119</link>
      <description>&lt;P&gt;I'm going to show you a step-by-step approach, with the warning that I might not program it this way in real life.&amp;nbsp; I might look for ways to combine some of these steps.&amp;nbsp; If you are actually processing tens of millions of records, we can look at some of the alternatives.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Prepare the data by first creating all the variables you might need.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data prepared;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;year = year(creation_date);&lt;/P&gt;
&lt;P&gt;month = month(creation_date);&lt;/P&gt;
&lt;P&gt;if validation_date &amp;gt; . then validated = 'Y';&lt;/P&gt;
&lt;P&gt;if sold_out_date &amp;gt; . then sold_out = 'Y';&lt;/P&gt;
&lt;P&gt;if creation_date &amp;gt; . then created='Y';&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then summarize as needed to get the various subtotals you require:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc summary data=prepared nway;&lt;/P&gt;
&lt;P&gt;class year month;&lt;/P&gt;
&lt;P&gt;var amount;&lt;/P&gt;
&lt;P&gt;where sold_out='Y';&lt;/P&gt;
&lt;P&gt;output out=sum1 (keep=year month amount_sold_out) sum=amount_sold_out;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc summary data=prepared nway;&lt;/P&gt;
&lt;P&gt;class year month;&lt;/P&gt;
&lt;P&gt;var amount;&lt;/P&gt;
&lt;P&gt;where created='Y';&lt;/P&gt;
&lt;P&gt;output out=sum2 (keep=year month amount_created) sum=amount_created;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;proc summary data=prepared nway;&lt;/P&gt;
&lt;P&gt;class year month;&lt;/P&gt;
&lt;P&gt;var amount;&lt;/P&gt;
&lt;P&gt;where validated='Y';&lt;/P&gt;
&lt;P&gt;output out=sum3 (keep=year month amount_validated) sum=amount_validated;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then combine all the summaries:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;merge sum1 (in=in1) sum2 (in=in2) sum3 (in=in3);&lt;/P&gt;
&lt;P&gt;by year month;&lt;/P&gt;
&lt;P&gt;if in1=0 then amount_sold_out=0;&lt;/P&gt;
&lt;P&gt;if in2=0 then amount_created=0;&lt;/P&gt;
&lt;P&gt;if in3=0 then amount_validated=0;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This gives you a data set that is ready (or at least close enough) for printing.&amp;nbsp; You can experiment with it, fiddle with it if you would like (for example, converting month to a 3-letter abbreviation) since this is a small data set and won't take too much time to process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Feb 2016 15:41:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Web-Report-Studio/How-to-build-an-crosstab/m-p/253209#M2119</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-02-29T15:41:41Z</dc:date>
    </item>
  </channel>
</rss>

