<?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 date difference calculation in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55295#M15383</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You have left out the chance to get the date when the last record in a group is read and I think that you reversed the way you want to do the calculation.&amp;nbsp; I think you are actually trying to do something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data cig.date_duration;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set cig.ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by HHID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.HHID then first_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.HHID then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration =last_date-first_date + 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 26 Aug 2011 14:38:07 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2011-08-26T14:38:07Z</dc:date>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55294#M15382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data cig.date_duration;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set cig.ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by HHID purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.HHID then do;&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;if first.HHID then first_date = purchase_date;&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;if last.HHID then last_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duration = first_date - last_date + 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;if last.HHID then output;&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;What is wrong with my code? Basically, I want to calculate the difference between last purchase_date - first purchase_date for each household id (HHID) from a data file called cig.ALL.&lt;/P&gt;&lt;P&gt;With the above code, I get last_date only when it's a last_date = first_date (i.e., purchase is made on only one day).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone please help? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;C&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2011 14:31:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55294#M15382</guid>
      <dc:creator>jkf91</dc:creator>
      <dc:date>2011-08-26T14:31:15Z</dc:date>
    </item>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55295#M15383</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You have left out the chance to get the date when the last record in a group is read and I think that you reversed the way you want to do the calculation.&amp;nbsp; I think you are actually trying to do something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data cig.date_duration;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set cig.ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by HHID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.HHID then first_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.HHID then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration =last_date-first_date + 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2011 14:38:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55295#M15383</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-08-26T14:38:07Z</dc:date>
    </item>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55296#M15384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The data ALL looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HHID&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; Purchase Date&lt;/P&gt;&lt;P&gt;1&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;&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; 1/2/2002&lt;/P&gt;&lt;P&gt;1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/11/2002&lt;/P&gt;&lt;P&gt;1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/13/2002&lt;/P&gt;&lt;P&gt;2&lt;/P&gt;&lt;P&gt;2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want:&lt;/P&gt;&lt;P&gt;HHID&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; Purchase Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; First_Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Last_Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Duration&lt;/P&gt;&lt;P&gt;1&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;&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; 1/2/2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/2/2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/13/2002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2011 14:54:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55296#M15384</guid>
      <dc:creator>jkf91</dc:creator>
      <dc:date>2011-08-26T14:54:50Z</dc:date>
    </item>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55297#M15385</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thank you, sir. what does "output;" do? I get the same output without it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2011 14:55:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55297#M15385</guid>
      <dc:creator>jkf91</dc:creator>
      <dc:date>2011-08-26T14:55:24Z</dc:date>
    </item>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55298#M15386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;now, it records the first_date and last_date. But, I still need to collapse it into the table in the post below... &lt;/P&gt;&lt;P&gt;Is there a way I can do it in the same data step without creating extra "sql" command?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;many thanks! &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2011 14:59:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55298#M15386</guid>
      <dc:creator>jkf91</dc:creator>
      <dc:date>2011-08-26T14:59:19Z</dc:date>
    </item>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55299#M15387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'll answer your question but, first, I forgot to include an important line.&amp;nbsp; A retain statment is needed.&amp;nbsp; The code should have read:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data cig.date_duration;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set cig.ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by HHID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain first_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.HHID then first_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.HHID then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration =last_date-first_date + 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The output statement, because it is within the do loop where last.HHID is true, causes SAS to only output that one record, rather than all of the records.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2011 14:59:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55299#M15387</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-08-26T14:59:51Z</dc:date>
    </item>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55300#M15388</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure what your question is.&amp;nbsp; If it is just that you only want to keep the fields you identified, you can either&amp;nbsp; only keep those fields when you set the dataset, keep them in the data statement, or drop the other fields.&amp;nbsp; I think the most efficient way would be to use something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data cig.date_duration;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set cig.ALL (keep=HHID purchase_date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by HHID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; retain first_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; format first_date last_date date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.HHID then first_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.HHID then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration =last_date-first_date + 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; purchase_date=first_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2011 15:07:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55300#M15388</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-08-26T15:07:27Z</dc:date>
    </item>
    <item>
      <title>date difference calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55301#M15389</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to decide which date is PurchaseDate.&lt;/P&gt;&lt;P&gt;Art's code can not work?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data cig.date_duration;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set cig.ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by HHID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain first_date&lt;STRONG&gt; &lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.HHID then first_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.HHID then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last_date = purchase_date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration =last_date-first_date + 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;purchase_date=first_date;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&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;Code not test.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Aug 2011 03:31:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/date-difference-calculation/m-p/55301#M15389</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-08-29T03:31:55Z</dc:date>
    </item>
  </channel>
</rss>

