<?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: Getting max value by group and with a predefined time horizon. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558238#M155784</link>
    <description>&lt;P&gt;Hi. the results woul look like below: (Considering that in my database the end of month date is not always the same i want the difference between the two observation date considered to be &amp;lt;=370. )&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Observation_date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;TD&gt;Status_after_1_year&lt;/TD&gt;&lt;TD&gt;Logic&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/12/2016&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/12/2016 to 31/12/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/01/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/01/2017 to 31/01/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/12/2017&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/12/2017 to 31/12/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/01/2018&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/01/2018 to 31/01/2019&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;31/03/2018&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/03/2018 to 31/03/2019&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;31/01/2020&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/01/2020 to 31/01/2021&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Mon, 13 May 2019 09:14:44 GMT</pubDate>
    <dc:creator>inid</dc:creator>
    <dc:date>2019-05-13T09:14:44Z</dc:date>
    <item>
      <title>Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558157#M155744</link>
      <description>&lt;P&gt;I have a data set structured like below.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;2/28/2017&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;y&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;y&lt;/TD&gt;&lt;TD&gt;2/28/2017&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;z&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;z&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to get the maximum value of column status 1 year from actual date. to do this i am using proc sql but it isn't functioning as it should (i am quite new to this).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what i want to get is:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;TD&gt;Status after 1 year&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/31/2016&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;1&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/31/2018&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what i get:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;TD&gt;Status after 1 year&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/31/2016&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/31/2018&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code i&amp;nbsp; have used:&lt;/P&gt;&lt;P&gt;Proc sql;&lt;/P&gt;&lt;P&gt;Select Customer ID, Date, Status, Max (Status) as Status after 1 year&lt;/P&gt;&lt;P&gt;from db t1&lt;/P&gt;&lt;P&gt;where Date between t1.Date and t1.date + 365&lt;/P&gt;&lt;P&gt;group by Customer ID, Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you in advance. is there any way to do this without proc sql? if not could you please provide any hint on how to proceed? I am using sas enterprise guide 7.1&lt;/P&gt;</description>
      <pubDate>Sun, 12 May 2019 20:42:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558157#M155744</guid>
      <dc:creator>inid</dc:creator>
      <dc:date>2019-05-12T20:42:55Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558161#M155746</link>
      <description>&lt;P&gt;Welcome to the forums!&lt;/P&gt;
&lt;P&gt;1. Your input and output dates are different&lt;/P&gt;
&lt;P&gt;2. Your input and output IDs are different&lt;/P&gt;
&lt;P&gt;3. Post input data as a data step&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank" rel="noopener noreferrer"&gt;How to convert datasets to data steps&lt;/A&gt;&amp;nbsp; &amp;nbsp;&lt;A href="https://gist.githubusercontent.com/statgeek/bcc55940dd825a13b9c8ca40a904cba9/raw/865d2cf18f5150b8e887218dde0fc3951d0ff15b/data2datastep.sas" target="_blank" rel="nofollow noopener noreferrer noopener noreferrer"&gt;(You can use this macro)&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://communities.sas.com/t5/help/faqpage/faq-category-id/posting#posting" target="_blank" rel="noopener noreferrer"&gt;How to post code&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;4. What does "&lt;SPAN&gt;1 year from actual date" mean? On the very same date a year later? Is there an interval to consider?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 12 May 2019 22:41:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558161#M155746</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-12T22:41:10Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558162#M155747</link>
      <description>&lt;P&gt;Hi. thank you for the comment.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The initial data look something like below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Observation Date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/31/2016&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/31/2018&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For each ID and for each data date (i have monthly data) i have their status. I want to add a column where it is shown the maximum value of&amp;nbsp; Status 1 year from the observation date. For example in the first observation I want to know ID=1 status 1 year from observation date which would be 12/31/2017 and would be equal to 0. The same for the second observation i want to know its status 1 year from the 1/31/2017 so until 1/31/2018 and in this case it would be equal to 1.&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 year from now would mean 370 days added to observation date (considering that the monthly date is always on end of month but may vary with 1-2 days..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I would like to have as a result is:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;TD&gt;Status after 1 year&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/31/2016&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;1&lt;/TD&gt;&lt;TD&gt;1/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/31/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/31/2018&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;for the last 2 observations even though 1 full year has not i want to have the maximum value of the available dates.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 May 2019 23:08:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558162#M155747</guid>
      <dc:creator>inid</dc:creator>
      <dc:date>2019-05-12T23:08:23Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558168#M155752</link>
      <description>&lt;P&gt;I pasted this into SAS:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;ID	Observation Date	Status
1	12/31/2016	0
1	1/31/2017	0
1	12/31/2017	0
1	1/31/2018	1&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;but I get errors.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit your post so we can &lt;U&gt;cut-and-paste&lt;/U&gt; your code into SAS.&amp;nbsp; Don't make us do your work converting your post into valid SAS code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Same goes for your desired results.&lt;/P&gt;</description>
      <pubDate>Mon, 13 May 2019 01:52:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558168#M155752</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2019-05-13T01:52:16Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558206#M155770</link>
      <description>&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Observation_date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status&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; 31/12/2016&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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; 31/01/2017&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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; 31/12/2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&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; 31/01/2018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry I did not have access to SAS when I wrote the issue.&amp;nbsp;&lt;/P&gt;&lt;P&gt;this is the data copy pasted from SAS data.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code I use is Below:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Proc&lt;/STRONG&gt; &lt;STRONG&gt;sql&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SELECT&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;ID,OBSERVATION_DATE, Status, MAX(Status) FORMAT=BEST4. AS Status_after_1_year&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM work.datatest t1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; where&amp;nbsp;&amp;nbsp; Observation_date between t1.Observation_date&amp;nbsp; and t1.Observation_date+&lt;STRONG&gt;365&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; GROUP BY 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; oRDER BY Observation_date asc;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;QUIT&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the results i get:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Observation_date&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Status&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Status_after_1_year&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/12/2016&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/12/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/01/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;In the first&amp;nbsp; observation i want the&amp;nbsp; "Status_after_1_year" to be =0 as the maximum value 1 is reached only on 31 January 2018 and therefore the value=1 should start at the second observation.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I look forward to your feedback.&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you in advance&lt;/P&gt;</description>
      <pubDate>Mon, 13 May 2019 07:11:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558206#M155770</guid>
      <dc:creator>inid</dc:creator>
      <dc:date>2019-05-13T07:11:42Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558210#M155772</link>
      <description>&lt;P&gt;And you want to do so without PROC SQL, correct?&lt;/P&gt;</description>
      <pubDate>Mon, 13 May 2019 07:24:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558210#M155772</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-05-13T07:24:46Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558211#M155773</link>
      <description>No with Proc SQL is fine as well.</description>
      <pubDate>Mon, 13 May 2019 07:36:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558211#M155773</guid>
      <dc:creator>inid</dc:creator>
      <dc:date>2019-05-13T07:36:09Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558214#M155774</link>
      <description>&lt;P&gt;Ok. Here is a data step approach, that gives you what you want&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Observation_date:ddmmyy10. Status;
format Observation_date ddmmyy10.;
datalines;
1 31/12/2016 0
1 31/01/2017 0
1 31/12/2017 0
1 31/01/2018 1
2 31/12/2016 0
2 31/01/2017 0
2 31/12/2017 0
2 31/01/2018 1
;

data want(drop=max_date);
   do until (last.id);
      set have;
      by id;
      if Observation_date ge Max_date then Max_date=Observation_date;
   end;

   do until (last.id);
      set have;
      by id;
      Status_after_1_year=0;
      if intck('day', Observation_date, Max_date) le 365 then
         Status_after_1_year=1;
      output;
   end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This gives&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Capture.PNG" style="width: 564px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29441i6324D507D78385A3/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 May 2019 07:51:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558214#M155774</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-05-13T07:51:56Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558226#M155778</link>
      <description>&lt;P&gt;Maybe I was not clear but this does not work from me since i want to know the maximum value column "status" has and not just the difference between the two dates. For example if the data would be as below:&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Observation_date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status&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; 31/12/2016&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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; 31/01/2017&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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; 31/12/2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&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; 31/01/2018&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2&lt;/P&gt;&lt;P&gt;then the desired output wold be:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Observation_date&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Status&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Status_after_1_year&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/12/2016&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/12/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31/01/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 13 May 2019 08:30:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558226#M155778</guid>
      <dc:creator>inid</dc:creator>
      <dc:date>2019-05-13T08:30:15Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558232#M155780</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/239611"&gt;@inid&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To better derive the rules you want to implement can you please show us how the desired result would look like for below sample data.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 infile datalines truncover dlm=' ' dsd;
 input ID Observation_date:anydtdte. Status;
 format Observation_date date9.;
 datalines;
1 31/12/2016 0
1 31/01/2017 0
1 31/12/2017 1
1 31/01/2018 1
1 31/03/2018 2
1 31/01/2020 3
;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 May 2019 08:48:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558232#M155780</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-05-13T08:48:47Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558238#M155784</link>
      <description>&lt;P&gt;Hi. the results woul look like below: (Considering that in my database the end of month date is not always the same i want the difference between the two observation date considered to be &amp;lt;=370. )&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Observation_date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;TD&gt;Status_after_1_year&lt;/TD&gt;&lt;TD&gt;Logic&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/12/2016&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/12/2016 to 31/12/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/01/2017&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/01/2017 to 31/01/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/12/2017&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/12/2017 to 31/12/2018&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;31/01/2018&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/01/2018 to 31/01/2019&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;31/03/2018&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/03/2018 to 31/03/2019&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;31/01/2020&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Maximum Value of Status from 31/01/2020 to 31/01/2021&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 13 May 2019 09:14:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558238#M155784</guid>
      <dc:creator>inid</dc:creator>
      <dc:date>2019-05-13T09:14:44Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558240#M155785</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/239611"&gt;@inid&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry for continuing asking instead of providing a solution. I just try to get full clarity first.&lt;/P&gt;
&lt;P&gt;Soo... about the 370 days and "&lt;EM&gt;Considering that in my database the end of month date is not always the same&lt;/EM&gt;":&lt;/P&gt;
&lt;P&gt;Are you aware that SAS provides calendar functions which would make it very simple to shift any date to the beginning or end of month before a date comparison? There is also a function which could just return the number of years or months or ... between two dates.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could any of this be useful for your task? Would shifting the dates prior to comparing them help?&lt;/P&gt;</description>
      <pubDate>Mon, 13 May 2019 09:20:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558240#M155785</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-05-13T09:20:12Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558242#M155786</link>
      <description>I am sorry I am quite new to sas.&lt;BR /&gt;It would definitely help t have the end of month date and i was not aware i could achieve it. Never the less my main concern would be get the maximum value of the given column 1 year from the observation date of each row for each ID.&lt;BR /&gt;Thank you for the time spent.</description>
      <pubDate>Mon, 13 May 2019 09:26:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558242#M155786</guid>
      <dc:creator>inid</dc:creator>
      <dc:date>2019-05-13T09:26:57Z</dc:date>
    </item>
    <item>
      <title>Re: Getting max value by group and with a predefined time horizon.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558247#M155789</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/239611"&gt;@inid&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Nothing to be sorry about. Below code should return what you're after.&lt;/P&gt;
&lt;P&gt;The yrdif() function as I've used it calculates the AGE between two dates. As I understand you this should be something between 0 and exactly 1 (if the end date is one day later yrdif() would return a value of 1 with some decimals).&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 infile datalines truncover dlm=' ' dsd;
 input ID Observation_date:anydtdte. Status;
 format Observation_date date9.;
 datalines;
1 31/12/2016 0
1 31/01/2017 0
1 31/12/2017 1
1 31/01/2018 1
1 31/03/2018 2
1 31/01/2020 3
;
run;

proc sql;
  select distinct
    l.*, 
    max(r.status) as max_status_within_year
  from 
    have l
      left join
    have r
      on 
        l.id=r.id 
        and yrdif(l.Observation_date,r.Observation_date) between 0 and 1
/*        and yrdif(intnx('month',l.Observation_date,0,'b'),intnx('month',r.Observation_date,0,'b')) between 0 and 1*/
/*        and intck('month',l.Observation_date,r.Observation_date) between 0 and 12*/
  group by l.id,l.Observation_date
  having max(r.status)=r.status
  ;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The first alternative condition in comments first aligns the two dates to the beginning of the month and only then calculates the AGE.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The 2nd alternative condition calculates the number of moths boundaries between two dates (31Jan2017, 01Feb2017 would return 1).&lt;/P&gt;</description>
      <pubDate>Mon, 13 May 2019 10:07:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-max-value-by-group-and-with-a-predefined-time-horizon/m-p/558247#M155789</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-05-13T10:07:00Z</dc:date>
    </item>
  </channel>
</rss>

