<?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 calculate previous products holding using PROC SQL? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478331#M123362</link>
    <description>&lt;P&gt;So the initial number of products for Customer ID 1 os 3? How do we know that?&lt;/P&gt;</description>
    <pubDate>Mon, 16 Jul 2018 11:28:05 GMT</pubDate>
    <dc:creator>PeterClemmensen</dc:creator>
    <dc:date>2018-07-16T11:28:05Z</dc:date>
    <item>
      <title>How to calculate previous products holding using PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478321#M123360</link>
      <description>&lt;P&gt;&lt;FONT color="#0000FF"&gt;Dear All,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;I have the following tables&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Campaign table : contains the date the campaign was sent&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Transaction table : contains the purchase date and the name of the product&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;- The desired outcome, is to have the number products the customer hold at the time of each campaign date&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;I want to keep all the campaign tables rows as they are and just add a column called no of products they have at that date&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;Is there anyway of doing this using Proc sql?&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;Thank you so much for your help&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Campaign table&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Id&lt;/TD&gt;&lt;TD&gt;Campaign_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;07/11/2017 00:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;14/11/2017 00:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;19/11/2017 00:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;23/11/2017 00:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;24/11/2017 00:00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Transactions table&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Id&lt;/TD&gt;&lt;TD&gt;Purchase date&lt;/TD&gt;&lt;TD&gt;Product&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;08/06/2012 00:00&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/03/2014 00:00&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/03/2014 00:00&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;08/11/2017 00:00&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Desired Output&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Id&lt;/TD&gt;&lt;TD&gt;Campaign_date&lt;/TD&gt;&lt;TD&gt;No_products&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;07/11/2017 00:00&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;14/11/2017 00:00&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;19/11/2017 00:00&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;23/11/2017 00:00&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;24/11/2017 00:00&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 16 Jul 2018 10:36:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478321#M123360</guid>
      <dc:creator>Kanyange</dc:creator>
      <dc:date>2018-07-16T10:36:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate previous products holding using PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478331#M123362</link>
      <description>&lt;P&gt;So the initial number of products for Customer ID 1 os 3? How do we know that?&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 11:28:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478331#M123362</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2018-07-16T11:28:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate previous products holding using PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478332#M123363</link>
      <description>&lt;P&gt;Can you post the test data as datasteps, so that we have exactly the data-types and variable names you use?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The logic to be used is: select count(*) from transaction having purchase_date &amp;lt; campaign_date. Right?&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 11:32:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478332#M123363</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2018-07-16T11:32:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate previous products holding using PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478335#M123364</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The initial number is 3 because if you look at the purchase date, the customer has bought 3 different products, before 07/11/2018...&lt;/P&gt;&lt;P&gt;So on 7/11/2017, he had 3 products then he bought an extra one 0n 08/11/2017...so the next dates should have 4 next to them...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Not sure if it makes sense...?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 11:56:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478335#M123364</guid>
      <dc:creator>Kanyange</dc:creator>
      <dc:date>2018-07-16T11:56:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate previous products holding using PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478347#M123369</link>
      <description>&lt;P&gt;&lt;FONT color="#0000FF"&gt;I found a solution &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; and it works perfectly...&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;proc sql;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;create table previous_products as &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;select &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp; prod.email&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;, prod.campaign_date &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;, count(distinct case when product is not null and prod_before_campaign=1 then product end) as No_products&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;from&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;(select distinct a.*&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,b.purchase_date&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ,b.product&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ,case when purchase_date &amp;lt; campaign_date then 1 else 0 end as prod_before_campaign&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;from (select email, mailing_id, campaign_date from analysis.campaign_dataset where email='xxxxxx') a&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;left join (select distinct email, purchase_date, product from analysis.transaction_data&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;where email='xxxx') b&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;on a.email=lower(b.email) order by campaign_date, purchase_date) prod&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;group by 1,2;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;quit;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 12:42:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-previous-products-holding-using-PROC-SQL/m-p/478347#M123369</guid>
      <dc:creator>Kanyange</dc:creator>
      <dc:date>2018-07-16T12:42:03Z</dc:date>
    </item>
  </channel>
</rss>

