<?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 calculate every 45days and within 90days of the month in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-every-45days-and-within-90days-of-the-month/m-p/688099#M208975</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I need to find if there are returning customers after 45days but within 90days.&lt;/P&gt;&lt;P&gt;1. how to calculate every 45days?&lt;/P&gt;&lt;P&gt;2. how to find returning customers after 45days but within 90days&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;sample data:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;customer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date&lt;/P&gt;&lt;P&gt;Alex&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-01-01&lt;/P&gt;&lt;P&gt;James&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-01-03&lt;/P&gt;&lt;P&gt;Alex&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-02-20&lt;/P&gt;&lt;P&gt;James&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-06-03&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;want data:&amp;nbsp; (Alex was the only returning customer after 45 days but within 90days)&lt;/STRONG&gt;:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Period 1&lt;/TD&gt;&lt;TD&gt;Period 2&lt;/TD&gt;&lt;TD&gt;Period 3&lt;/TD&gt;&lt;TD&gt;Period 4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2020-01-01 to 2020-02-14&lt;/TD&gt;&lt;TD&gt;2020-02-15 to +45 Days&lt;/TD&gt;&lt;TD&gt;Period 2 Date to + 45 Days&lt;/TD&gt;&lt;TD&gt;Period 3 Date to + 45 Days&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Returning Customers&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 01 Oct 2020 03:50:20 GMT</pubDate>
    <dc:creator>HitmonTran</dc:creator>
    <dc:date>2020-10-01T03:50:20Z</dc:date>
    <item>
      <title>How to calculate every 45days and within 90days of the month</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-every-45days-and-within-90days-of-the-month/m-p/688099#M208975</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I need to find if there are returning customers after 45days but within 90days.&lt;/P&gt;&lt;P&gt;1. how to calculate every 45days?&lt;/P&gt;&lt;P&gt;2. how to find returning customers after 45days but within 90days&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;sample data:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;customer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date&lt;/P&gt;&lt;P&gt;Alex&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-01-01&lt;/P&gt;&lt;P&gt;James&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-01-03&lt;/P&gt;&lt;P&gt;Alex&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-02-20&lt;/P&gt;&lt;P&gt;James&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2020-06-03&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;want data:&amp;nbsp; (Alex was the only returning customer after 45 days but within 90days)&lt;/STRONG&gt;:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Period 1&lt;/TD&gt;&lt;TD&gt;Period 2&lt;/TD&gt;&lt;TD&gt;Period 3&lt;/TD&gt;&lt;TD&gt;Period 4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2020-01-01 to 2020-02-14&lt;/TD&gt;&lt;TD&gt;2020-02-15 to +45 Days&lt;/TD&gt;&lt;TD&gt;Period 2 Date to + 45 Days&lt;/TD&gt;&lt;TD&gt;Period 3 Date to + 45 Days&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Returning Customers&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Oct 2020 03:50:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-every-45days-and-within-90days-of-the-month/m-p/688099#M208975</guid>
      <dc:creator>HitmonTran</dc:creator>
      <dc:date>2020-10-01T03:50:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate every 45days and within 90days of the month</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-every-45days-and-within-90days-of-the-month/m-p/688104#M208979</link>
      <description>&lt;P&gt;Figuring out date intervals is pretty easy with the INTNX function.&amp;nbsp; Here's code to read everything in and calculate Day45 and Day90.&amp;nbsp; It'll take me a bit more to get the code to determine if the person is a returnee within the 45 to 90 day period.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA	Returnees;
	INFILE	DATALINES	MISSOVER;
	FORMAT	Customer		$8.
			Date_Of_Visit	YYMMDDD10.
			Day45			YYMMDDD10.
			Day90			YYMMDDD10.
			;
	INPUT	Customer		$
			Date_of_Visit	:	ANYDTDTE10.
			;

	Day45	=	INTNX('DAY', Date_of_Visit, 45);
	Day90	=	INTNX('DAY', Date_of_Visit, 90);

DATALINES;
Alex                   2020-01-01
James               2020-01-03
Alex                  2020-02-20
James               2020-06-03
;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 01 Oct 2020 04:24:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-every-45days-and-within-90days-of-the-month/m-p/688104#M208979</guid>
      <dc:creator>jimbarbour</dc:creator>
      <dc:date>2020-10-01T04:24:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate every 45days and within 90days of the month</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-every-45days-and-within-90days-of-the-month/m-p/688106#M208980</link>
      <description>&lt;P&gt;OK,&amp;nbsp; here's an example of how to determine if a Customer's subsequent visit is within a 45 to 90 day window of their most recent past visit.&amp;nbsp; I'm using a hash table to build a look up by customer.&amp;nbsp; This current coding only works if you have unique customer names.&amp;nbsp; If you have multiple customers with the same name, you'd have to do something more sophisticated like a customer id or some such.&amp;nbsp; The hash table saves Day45 and Day90 from the first visit and those values are retrieved by the FIND() and then compared to the customer's current visit date.&amp;nbsp; If the customer's current visit is withing the 45 to 90 day range, they are marked as "Y", they are in fact a Returnee.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA	Customers_And_Dates;
	INFILE	DATALINES	MISSOVER;
	FORMAT	Customer		$8.
			Date_Of_Visit	YYMMDDD10.
			Day45			YYMMDDD10.
			Day90			YYMMDDD10.
			;

	INPUT	Customer		$
			Date_of_Visit	:	ANYDTDTE10.
			;

	Day45	=	INTNX('DAY', Date_of_Visit, 45);
	Day90	=	INTNX('DAY', Date_of_Visit, 90);

DATALINES;
Alex                   2020-01-01
James               2020-01-03
Alex                  2020-02-20
James               2020-06-03
;
RUN;

PROC	SORT	DATA	=	Customers_And_Dates;
	BY	Customer	Date_of_Visit;
RUN;

DATA	Returnees;
	DROP	_:;
	SET	Customers_And_Dates;
			BY	Customer;

	IF	_N_					=	1						THEN
		DO;
			DECLARE	HASH	Hsh_Cust_Visits				(MULTIDATA: 'N');
							Hsh_Cust_Visits.DefineKey 	('Customer');
							Hsh_Cust_Visits.DefineData	('Day45', 'Day90');
							Hsh_Cust_Visits.DefineDone	();
		END;

	IF	FIRST.Customer		THEN
		DO;
			_RC				=	Hsh_Cust_Visits.ADD();
			Returnee		=	'N';
		END;
	ELSE
		DO;
			_Save45			=	Day45;
			_Save90			=	Day90;
			_RC				=	Hsh_Cust_Visits.FIND();		
			IF	Day45	&amp;lt;=	Date_of_Visit	&amp;lt;=	Day90	THEN
				Returnee	=	'Y';
			ELSE
				Returnee	=	'N';
			Day45			=	_Save45;
			Day90			=	_Save90;
			_RC				=	Hsh_Cust_Visits.REPLACE();
		END;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Results:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jimbarbour_0-1601526401618.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/50037i8EB3E098D2E83BED/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jimbarbour_0-1601526401618.png" alt="jimbarbour_0-1601526401618.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think that's basically what you're looking for, yes?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Oct 2020 04:29:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-every-45days-and-within-90days-of-the-month/m-p/688106#M208980</guid>
      <dc:creator>jimbarbour</dc:creator>
      <dc:date>2020-10-01T04:29:32Z</dc:date>
    </item>
  </channel>
</rss>

