<?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: Keeping differenced value of month for last occuring key in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163258#M42370</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1 x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;4 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;4 x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;5 z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;6 a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;7 z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;7 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At each month, it will look for occurrence of they key previously, so basically count the skipped months&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 10 Nov 2014 12:31:59 GMT</pubDate>
    <dc:creator>munitech4u</dc:creator>
    <dc:date>2014-11-10T12:31:59Z</dc:date>
    <item>
      <title>Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163254#M42366</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a dataset like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Month&amp;nbsp; Key&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; x&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; y&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; z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want a dataset like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Month&amp;nbsp; Key&amp;nbsp;&amp;nbsp; Last_occured_before_month&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; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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; y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; &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; z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where the in each month, it will look for last occuring value of that key and wherever that month is found it will keep the differenced value.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 11:36:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163254#M42366</guid>
      <dc:creator>munitech4u</dc:creator>
      <dc:date>2014-11-10T11:36:19Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163255#M42367</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This delivers exactly what you want:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;length month 3 key $ 1;&lt;/P&gt;&lt;P&gt;input month key;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 x&lt;/P&gt;&lt;P&gt;1 y&lt;/P&gt;&lt;P&gt;1 z&lt;/P&gt;&lt;P&gt;2 y&lt;/P&gt;&lt;P&gt;2 z&lt;/P&gt;&lt;P&gt;3 x&lt;/P&gt;&lt;P&gt;3 y&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=have;&lt;/P&gt;&lt;P&gt;by key month;&lt;/P&gt;&lt;P&gt;run;&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;by key;&lt;/P&gt;&lt;P&gt;x1 = lag1(month);&lt;/P&gt;&lt;P&gt;if first.key or x1 = . or (month - x1) = 1&lt;/P&gt;&lt;P&gt;then last_occured_before_month = 0;&lt;/P&gt;&lt;P&gt;else last_occured_before_month = x1;&lt;/P&gt;&lt;P&gt;drop x1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=want;&lt;/P&gt;&lt;P&gt;by month key;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 11:59:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163255#M42367</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2014-11-10T11:59:33Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163256#M42368</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This logic is failing in following scenario:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 x&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 y&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 y&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 z&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 x&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 y&lt;/P&gt;&lt;P&gt;4 y&lt;/P&gt;&lt;P&gt;4 x&lt;/P&gt;&lt;P&gt;5 z&lt;/P&gt;&lt;P&gt;6 a&lt;/P&gt;&lt;P&gt;7 z&lt;/P&gt;&lt;P&gt;7 y&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 12:21:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163256#M42368</guid>
      <dc:creator>munitech4u</dc:creator>
      <dc:date>2014-11-10T12:21:52Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163257#M42369</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Then you need to post a more complete description (complete want/have data) of your problem. My solution solves your initial post.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 12:25:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163257#M42369</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2014-11-10T12:25:50Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163258#M42370</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1 x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;4 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;4 x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;5 z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;6 a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;7 z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;7 y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At each month, it will look for occurrence of they key previously, so basically count the skipped months&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 12:31:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163258#M42370</guid>
      <dc:creator>munitech4u</dc:creator>
      <dc:date>2014-11-10T12:31:59Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163259#M42371</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input month key $;&lt;BR /&gt;datalines;&lt;BR /&gt;1 x&lt;BR /&gt;1 y&lt;BR /&gt;2 y&lt;BR /&gt;2 z&lt;BR /&gt;3 x&lt;BR /&gt;3 y&lt;BR /&gt;4 y&lt;BR /&gt;4 x&lt;BR /&gt;5 z&lt;BR /&gt;6 a&lt;BR /&gt;7 z&lt;BR /&gt;7 y&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc sort data=have;&lt;BR /&gt;by key month;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt; &lt;BR /&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;by key;&lt;/P&gt;&lt;P&gt;skmonths=dif(month)-1;&lt;BR /&gt;if first.key then skmonths=0;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 12:48:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163259#M42371</guid>
      <dc:creator>Loko</dc:creator>
      <dc:date>2014-11-10T12:48:43Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163260#M42372</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;

data have;
input month key $;
datalines;
1 x
1 y
2 y
2 z
3 x
3 y
4 y
4 x
5 z
6 a
7 z
7 y
;
run;
data want;
 if _n_ eq 1 then do;
&amp;nbsp; if 0 then set have;
&amp;nbsp; declare hash h();
&amp;nbsp;&amp;nbsp; h.definekey('key');
&amp;nbsp;&amp;nbsp; h.definedata('month');
&amp;nbsp;&amp;nbsp; h.definedone();
end;
set have;
dif=0;
if h.check()=0 then do; m=month;h.find();dif=m-month-1;month=m;end;
h.replace();
drop m;
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>Mon, 10 Nov 2014 13:47:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163260#M42372</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-11-10T13:47:35Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163261#M42373</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Loko's answer seems very simple to me.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 14:03:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163261#M42373</guid>
      <dc:creator>munitech4u</dc:creator>
      <dc:date>2014-11-10T14:03:33Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163262#M42374</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;But you need re-sort it again . Do you want double sort ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 14:14:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163262#M42374</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-11-10T14:14:55Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163263#M42375</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;yea.. double sorting is fine for me..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 14:26:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163263#M42375</guid>
      <dc:creator>munitech4u</dc:creator>
      <dc:date>2014-11-10T14:26:17Z</dc:date>
    </item>
    <item>
      <title>Re: Keeping differenced value of month for last occuring key</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163264#M42376</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;and a sql version:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input month key $;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;1 x&lt;/P&gt;&lt;P&gt;1 y&lt;/P&gt;&lt;P&gt;2 y&lt;/P&gt;&lt;P&gt;2 z&lt;/P&gt;&lt;P&gt;3 x&lt;/P&gt;&lt;P&gt;3 y&lt;/P&gt;&lt;P&gt;4 y&lt;/P&gt;&lt;P&gt;4 x&lt;/P&gt;&lt;P&gt;5 z&lt;/P&gt;&lt;P&gt;6 a&lt;/P&gt;&lt;P&gt;7 z&lt;/P&gt;&lt;P&gt;7 y&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SQL;&lt;/P&gt;&lt;P&gt;CREATE TABLE WANT AS&lt;/P&gt;&lt;P&gt;SELECT&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1.MONTH,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1.KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; coalesce(Min(T1.MONTH-T2.MONTH),0) as MonthDiff&lt;/P&gt;&lt;P&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAVE T1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN HAVE T2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON T1.KEY=T2.KEY AND T2.MONTH &amp;lt; T1.MONTH&lt;/P&gt;&lt;P&gt;GROUP BY 1,2;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 19:19:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Keeping-differenced-value-of-month-for-last-occuring-key/m-p/163264#M42376</guid>
      <dc:creator>DBailey</dc:creator>
      <dc:date>2014-11-10T19:19:40Z</dc:date>
    </item>
  </channel>
</rss>

