<?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 How to assign dates for rows in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600869#M173752</link>
    <description>&lt;P&gt;Hi everyone,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a&amp;nbsp;problem assigning proper dates for different ids.&lt;/P&gt;&lt;P&gt;Please help me out. I really appreciate it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For different ids, if the enter_date is the same as the previous leave_date or within the previous leave_date + 30 days, consider it as re-enter, then use the first enter_date as the enter_date, and the last leave_date as leave_date.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following is the original data and the data I would like it to look like. The data has been sorted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;have&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;enter_date&lt;/TD&gt;&lt;TD&gt;leave_date&lt;/TD&gt;&lt;TD&gt;service_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;1/27/19&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2/25/19&lt;/TD&gt;&lt;TD&gt;3/9/19&lt;/TD&gt;&lt;TD&gt;2/25/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/1/19&lt;/TD&gt;&lt;TD&gt;4/2/19&lt;/TD&gt;&lt;TD&gt;4/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/1/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;5/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;TD&gt;3/4/18&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/10/18&lt;/TD&gt;&lt;TD&gt;6/10/18&lt;/TD&gt;&lt;TD&gt;3/7/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;7/5/18&lt;/TD&gt;&lt;TD&gt;6/2/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;7/9/19&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;8/11/19&lt;/TD&gt;&lt;TD&gt;8/30/19&lt;/TD&gt;&lt;TD&gt;8/11/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;9/1/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;9/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;TD&gt;5/14/18&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;6/1/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;6/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;11/12/18&lt;/TD&gt;&lt;TD&gt;12/12/18&lt;/TD&gt;&lt;TD&gt;11/11/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;12/28/18&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;12/28/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;TD&gt;2/24/18&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/27/18&lt;/TD&gt;&lt;TD&gt;3/3/18&lt;/TD&gt;&lt;TD&gt;2/26/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;TD&gt;10/23/18&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;11/1/18&lt;/TD&gt;&lt;TD&gt;12/1/18&lt;/TD&gt;&lt;TD&gt;11/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;want&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;enter_date&lt;/TD&gt;&lt;TD&gt;leave_date&lt;/TD&gt;&lt;TD&gt;service_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;2/25/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;4/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;5/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;TD&gt;6/10/18&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;TD&gt;6/10/18&lt;/TD&gt;&lt;TD&gt;3/7/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;7/5/18&lt;/TD&gt;&lt;TD&gt;6/2/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;8/11/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;9/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;6/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;11/12/18&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;11/11/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;11/12/18&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;12/28/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;TD&gt;3/3/18&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;TD&gt;3/3/18&lt;/TD&gt;&lt;TD&gt;2/26/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;TD&gt;12/1/18&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;TD&gt;12/1/18&lt;/TD&gt;&lt;TD&gt;11/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much for taking the time to help me out!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Amber&lt;/P&gt;</description>
    <pubDate>Fri, 01 Nov 2019 03:51:22 GMT</pubDate>
    <dc:creator>amber7391</dc:creator>
    <dc:date>2019-11-01T03:51:22Z</dc:date>
    <item>
      <title>How to assign dates for rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600869#M173752</link>
      <description>&lt;P&gt;Hi everyone,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a&amp;nbsp;problem assigning proper dates for different ids.&lt;/P&gt;&lt;P&gt;Please help me out. I really appreciate it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For different ids, if the enter_date is the same as the previous leave_date or within the previous leave_date + 30 days, consider it as re-enter, then use the first enter_date as the enter_date, and the last leave_date as leave_date.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following is the original data and the data I would like it to look like. The data has been sorted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;have&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;enter_date&lt;/TD&gt;&lt;TD&gt;leave_date&lt;/TD&gt;&lt;TD&gt;service_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;1/27/19&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2/25/19&lt;/TD&gt;&lt;TD&gt;3/9/19&lt;/TD&gt;&lt;TD&gt;2/25/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4/1/19&lt;/TD&gt;&lt;TD&gt;4/2/19&lt;/TD&gt;&lt;TD&gt;4/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/1/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;5/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;TD&gt;3/4/18&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/10/18&lt;/TD&gt;&lt;TD&gt;6/10/18&lt;/TD&gt;&lt;TD&gt;3/7/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;7/5/18&lt;/TD&gt;&lt;TD&gt;6/2/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;7/9/19&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;8/11/19&lt;/TD&gt;&lt;TD&gt;8/30/19&lt;/TD&gt;&lt;TD&gt;8/11/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;9/1/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;9/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;TD&gt;5/14/18&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;6/1/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;6/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;11/12/18&lt;/TD&gt;&lt;TD&gt;12/12/18&lt;/TD&gt;&lt;TD&gt;11/11/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;12/28/18&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;12/28/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;TD&gt;2/24/18&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/27/18&lt;/TD&gt;&lt;TD&gt;3/3/18&lt;/TD&gt;&lt;TD&gt;2/26/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;TD&gt;10/23/18&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;11/1/18&lt;/TD&gt;&lt;TD&gt;12/1/18&lt;/TD&gt;&lt;TD&gt;11/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;want&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;enter_date&lt;/TD&gt;&lt;TD&gt;leave_date&lt;/TD&gt;&lt;TD&gt;service_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;2/25/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;4/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/21/19&lt;/TD&gt;&lt;TD&gt;5/5/19&lt;/TD&gt;&lt;TD&gt;5/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;TD&gt;6/10/18&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3/1/18&lt;/TD&gt;&lt;TD&gt;6/10/18&lt;/TD&gt;&lt;TD&gt;3/7/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;7/5/18&lt;/TD&gt;&lt;TD&gt;6/2/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;8/11/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7/3/19&lt;/TD&gt;&lt;TD&gt;9/5/19&lt;/TD&gt;&lt;TD&gt;9/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;2/14/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/31/18&lt;/TD&gt;&lt;TD&gt;6/7/18&lt;/TD&gt;&lt;TD&gt;6/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;11/12/18&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;11/11/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;11/12/18&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;12/28/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;TD&gt;2/1/19&lt;/TD&gt;&lt;TD&gt;1/1/19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;TD&gt;3/3/18&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2/21/18&lt;/TD&gt;&lt;TD&gt;3/3/18&lt;/TD&gt;&lt;TD&gt;2/26/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;TD&gt;12/1/18&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;10/10/18&lt;/TD&gt;&lt;TD&gt;12/1/18&lt;/TD&gt;&lt;TD&gt;11/1/18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much for taking the time to help me out!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Amber&lt;/P&gt;</description>
      <pubDate>Fri, 01 Nov 2019 03:51:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600869#M173752</guid>
      <dc:creator>amber7391</dc:creator>
      <dc:date>2019-11-01T03:51:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign dates for rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600881#M173757</link>
      <description>&lt;P&gt;The first row of your sample data has leave_date=1/21/2019, and the second row has enter_date=2/27/2019.&amp;nbsp; That's more than a 30-day difference - it's 31 days. &amp;nbsp; But you kept the record with the remaining ID=1 records.&amp;nbsp; Was that intentional?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Nov 2019 03:35:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600881#M173757</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2019-11-01T03:35:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign dates for rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600883#M173759</link>
      <description>&lt;P&gt;Thanks for pointing it out. It’s a typo I have corrected it.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Nov 2019 03:52:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600883#M173759</guid>
      <dc:creator>amber7391</dc:creator>
      <dc:date>2019-11-01T03:52:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign dates for rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600885#M173760</link>
      <description>&lt;P&gt;As you read a set of records, you need to compare the current-record LEAVE_DATE to the next record's ENTER_DATE.&amp;nbsp; You can preserve the first ENTER_DATE in an extra variable (_ENTER1). &amp;nbsp;If the gap is greater than 30 days, or you are at the end of an ID group, then you can re-read the same records (without re-reading LEAVE_DATE or ENTER_DATE), and output those records.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You don't need to re-read ENTER_DATE because you can replace it with _ENTER1.&amp;nbsp; And you don't need to re-read LEAVE_DATE because the LEAVE_DATE at the end of the first pass is the one to keep:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines ;
  input id  (enter_date leave_date service_date) ( :mmddyy9.);
  format  enter_date -- service_date date9.;
datalines;
1 1/21/19  1/27/19  1/21/19 
1 2/25/19  3/9/19   2/25/19 
1 4/1/19   4/2/19   4/1/19 
1 5/1/19   5/5/19   5/1/19 
2 3/1/18   3/4/18   3/1/18 
2 3/10/18  6/10/18  3/7/18 
3 6/7/18   7/5/18   6/2/18 
3 7/3/19   7/9/19   7/3/19 
3 8/11/19  8/30/19  8/11/19 
3 9/1/19   9/5/19   9/1/19 
4 1/31/18  2/14/18  1/31/18 
4 2/14/18  5/14/18  2/14/18 
4 6/1/18   6/7/18   6/1/18 
5 11/12/18 12/12/18 11/11/18 
5 12/28/18 2/1/19   12/28/18 
6 1/1/19   2/1/19   1/1/19 
7 2/21/18  2/24/18  2/21/18 
7 2/27/18  3/3/18   2/26/18 
7 10/10/18 10/23/18 10/10/18 
7 11/1/18  12/1/18  11/1/18 
run;

data want (drop=_:);
  do _n=1 by 1 until (last.id=1 or _nxt_enter &amp;gt; leave_date + 30);
    set have (keep=id);
    by id;
    merge have 
          have (firstobs=2 keep=enter_date rename=(enter_date=_nxt_enter));
    if _n=1 then _enter1=enter_date;
  end;
  enter_date=_enter1;
  do _i=1 to _n;
    set have (drop=enter_date leave_date);
    output;
  end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;OL&gt;
&lt;LI&gt;&amp;nbsp;If the first do group there is both a SET statement and a MERGE statement.&amp;nbsp; These are parallel streams of data.&amp;nbsp; The SET statement keeps only the ID variable and is accompanied by a "BY ID" statement, which produces the dummy variable LAST.ID (indicating that the record in hand is the last one for the current ID.&lt;/LI&gt;
&lt;LI&gt;The MERGE statement reads the identical record as the SET statement and simulaneously one variable (ENTER_DATE renamed to _NXT_ENTER) from the next record (due to the "FIRSTOBS=2" parameter).&amp;nbsp; The _NXT_ENTER is compared to the current LEAVE_DATE+30 at the end of every do-loop iteration, because of the "UNTIL …" condition.&lt;/LI&gt;
&lt;LI&gt;Note the "KEEP=ID" in the first SET statement is not absolutely necessary (all the variables are re-read in the MERGE statement).&amp;nbsp; But I use it as a technique to remind me of why I use the SET statement (just to implement the "BY ID" statement).&lt;/LI&gt;
&lt;LI&gt;Once the UNTIL condition is satisfied copy _ENTER1 to ENTER_DATE,&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;The re-read exactly _N records, keeping all the variables except ENTER_DATE and LEAVE_DATE, and output each of those re-read records.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Nov 2019 04:15:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600885#M173760</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2019-11-01T04:15:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign dates for rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600935#M173775</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines ;
  input id  (enter_date leave_date service_date) ( :mmddyy9.);
  format  enter_date -- service_date date9.;
datalines;
1 1/21/19  1/27/19  1/21/19 
1 2/25/19  3/9/19   2/25/19 
1 4/1/19   4/2/19   4/1/19 
1 5/1/19   5/5/19   5/1/19 
2 3/1/18   3/4/18   3/1/18 
2 3/10/18  6/10/18  3/7/18 
3 6/7/18   7/5/18   6/2/18 
3 7/3/19   7/9/19   7/3/19 
3 8/11/19  8/30/19  8/11/19 
3 9/1/19   9/5/19   9/1/19 
4 1/31/18  2/14/18  1/31/18 
4 2/14/18  5/14/18  2/14/18 
4 6/1/18   6/7/18   6/1/18 
5 11/12/18 12/12/18 11/11/18 
5 12/28/18 2/1/19   12/28/18 
6 1/1/19   2/1/19   1/1/19 
7 2/21/18  2/24/18  2/21/18 
7 2/27/18  3/3/18   2/26/18 
7 10/10/18 10/23/18 10/10/18 
7 11/1/18  12/1/18  11/1/18 
;
run;
data temp;
 set have;
 by id;
 if first.id or 
 lag(leave_date)&amp;gt;enter_date or
 enter_date&amp;gt;lag(leave_date)+30 then group+1;
 run;

 proc sql;
 create table want as
 select *,min(enter_date) as new_enter_date format=date9.,
 max(leave_date) as new_leave_date format=date9.
  from temp 
   group by group;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 01 Nov 2019 12:00:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600935#M173775</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-11-01T12:00:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign dates for rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600969#M173785</link>
      <description>&lt;P&gt;Thank you so much for such a detailed answer! The logic is absolutely correct, but I don't know why it also change the dates of the records which are not qualified as re-enter. Basically it changes the records to the same enter_date and leave_date&amp;nbsp;for different&amp;nbsp;ids .&lt;/P&gt;</description>
      <pubDate>Fri, 01 Nov 2019 13:55:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600969#M173785</guid>
      <dc:creator>amber7391</dc:creator>
      <dc:date>2019-11-01T13:55:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign dates for rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600996#M173789</link>
      <description>It works perfectly! Thank you very much!</description>
      <pubDate>Fri, 01 Nov 2019 15:19:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-dates-for-rows/m-p/600996#M173789</guid>
      <dc:creator>amber7391</dc:creator>
      <dc:date>2019-11-01T15:19:58Z</dc:date>
    </item>
  </channel>
</rss>

