<?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 shorten this proc sql code? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185678#M47162</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Take the difference in days and divide by 30.&lt;/P&gt;&lt;P&gt;Then summarize be the new categorical variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data intermediate ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set TOTAL_SALES ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; month = int( sub_purchase_date - first_purchase_date / 30 ) ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc freq ;&lt;/P&gt;&lt;P&gt; tables month;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Jun 2014 20:34:27 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2014-06-04T20:34:27Z</dc:date>
    <item>
      <title>How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185670#M47154</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi SAS experts,&lt;/P&gt;&lt;P&gt;I have a list of consumer id, date of first purchase, date of subsequent purchase (if any) and with all these, I want to find out when do people repurchase. Do people repurchase after X number of months?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is my code,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table FUTURE_PURCHASES as&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT consumer_id,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;30&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_1,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;61&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_2,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;91&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_3,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;122&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_4,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;152&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_5,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;183&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_6,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;213&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_7,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;244&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_8,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;274&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_9,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;305&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_10,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;335&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_11,&lt;/P&gt;&lt;P&gt;&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; case when sub_purchase_date between intnx('day',first_purchase_date,1,'e') and intnx('day',first_purchase_date,&lt;SPAN style="color: #ff0000;"&gt;366&lt;/SPAN&gt;,'e')&lt;/P&gt;&lt;P&gt;&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; then 1 else 0 end as month_12&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from TOTAL_SALES&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; order by consumer_id;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know this may the the worst code you have ever seen but I am trying my best to make it shorter. Is there a way to shorten this code?&lt;/P&gt;&lt;P&gt;Thank you! &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 18:59:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185670#M47154</guid>
      <dc:creator>shixin</dc:creator>
      <dc:date>2014-06-04T18:59:09Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185671#M47155</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do you have to use SQL? This is better as a datastep with an array. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 19:09:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185671#M47155</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-06-04T19:09:38Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185672#M47156</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't have to use SQL. I am fairly new to SAS and I have never used an array before. I will go check it out now! &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 19:16:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185672#M47156</guid>
      <dc:creator>shixin</dc:creator>
      <dc:date>2014-06-04T19:16:32Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185673#M47157</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What are you actually trying to do? &lt;/P&gt;&lt;P&gt;Do you really want all of those boolean flag variables or is this just a intermediate step on the way to creating a frequency by month table?&lt;/P&gt;&lt;P&gt; Looks like you are trying to mimic dividing the data into months.&amp;nbsp; Do you want to generate actual months?&amp;nbsp; Since these derived intervals are not actual calendar months then you will probably get better results by using a consistent 30 day interval instead.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 19:21:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185673#M47157</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2014-06-04T19:21:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185674#M47158</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'd suggest using the intck function to find the number of months between sub_purchase_date and first_ purchase_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;array month(12) month1-month12 (0 0 0 0 0 0 0 0 0 0 0 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;diff=intck('month', first_purchase_date, sub_purchase_date);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;month(diff)=1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 19:26:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185674#M47158</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-06-04T19:26:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185675#M47159</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tom's right, you should use 30 day intervals instead of 'months'. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 19:30:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185675#M47159</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-06-04T19:30:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185676#M47160</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is just an intermediate step. Eventually I will sum everything by month and then find the repurchase rate/trend. I am supposed to compare repurchase trend for members and non-members.&amp;nbsp; &lt;/P&gt;&lt;P&gt;You are right, I should change it to a 30 day interval since it's not following the actual calendar. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 19:32:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185676#M47160</guid>
      <dc:creator>shixin</dc:creator>
      <dc:date>2014-06-04T19:32:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185677#M47161</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So that's how an array function looks like, I will try it out now! &lt;/P&gt;&lt;P&gt;May take awhile for me to figure it out but i'll use your code as reference. &lt;/P&gt;&lt;P&gt;Thanks Reeza and Tom!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 19:40:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185677#M47161</guid>
      <dc:creator>shixin</dc:creator>
      <dc:date>2014-06-04T19:40:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185678#M47162</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Take the difference in days and divide by 30.&lt;/P&gt;&lt;P&gt;Then summarize be the new categorical variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data intermediate ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set TOTAL_SALES ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; month = int( sub_purchase_date - first_purchase_date / 30 ) ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc freq ;&lt;/P&gt;&lt;P&gt; tables month;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2014 20:34:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185678#M47162</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2014-06-04T20:34:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185679#M47163</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;infile cards truncover&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;input id first_purchase :mmddyy10. (subpurchase_1-subpurchase_12)(:mmddyy10.);&lt;/P&gt;&lt;P&gt;format first_purchase--subpurchase_12 mmddyys10.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 01/12/2012 01/13/2012 02/23/2012 04/05/2012 05/28/2012 06/02/2012 08/05/2013 12/23/2012 01/03/2013 . . . .&lt;/P&gt;&lt;P&gt;2 01/27/2012 03/04/2012 03/12/2012 04/12/2012 12/15/2012 . . . . . . . . .&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&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 date subpurchase_:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array flag flag1-flag12;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to dim(date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not missing(date(i)) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag(i)=ifn((date(i)-intnx('day',first_purchase,1, 'e')&amp;lt;=i*30),1,0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop i;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2014 01:59:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185679#M47163</guid>
      <dc:creator>slchen</dc:creator>
      <dc:date>2014-06-05T01:59:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to shorten this proc sql code?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185680#M47164</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;set have;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt; month_1&lt;/SPAN&gt;= (&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;first_purchase_date&lt;/SPAN&gt; &amp;lt;=&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;sub_purchase_date &amp;lt;= first_purchase_date+30&lt;/SPAN&gt; ) ;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt; month_2&lt;/SPAN&gt;= (&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;first_purchase_date+31&lt;/SPAN&gt; &amp;lt;=&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;sub_purchase_date &amp;lt;= first_purchase_date+61&lt;/SPAN&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>Thu, 05 Jun 2014 13:31:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/How-to-shorten-this-proc-sql-code/m-p/185680#M47164</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-06-05T13:31:15Z</dc:date>
    </item>
  </channel>
</rss>

