<?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: create seq number by customer ID+Event date in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/create-seq-number-by-customer-ID-Event-date/m-p/974200#M377837</link>
    <description>&lt;P&gt;If you only consider about DATE, that would be very easy.&lt;/P&gt;
&lt;P&gt;CODE EDITED.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Data loans_tbl;
format date_Loan ddmmyy10.;
Input CUSTID	date_Loan :date9.	Loan_Amnt;
cards;
111 08JUL2025 30000
222 17JUL2025 15000
222 20JUL2025 10000
333 28JUL2025 17000
444 02JUL2025 5000
444 03JUL2025 12000
444 29JUL2025 18000
;
Run;



Data offers_tbl;
format date_offer ddmmyy10.;
Input CUSTID	date_offer :date9.	Offer_Amnt;
cards;
111 02JUL2025 20000
111 05JUL2025 20000
111 06JUL2025 40000
111 09JUL2025 8000
111 28JUL2025 15000
222 15JUL2025 15000
222 18JUL2025 40000
333 22JUL2025 20000
444 28JUL2025 50000
;
Run;

data have ;
 &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;merge&lt;/STRONG&gt; &lt;/FONT&gt;loans_tbl(rename=(date_Loan=date)) offers_tbl(rename=(date_offer=date));
 by CUSTID date;
run;
data temp;
 set have;
 by CUSTID;
 if first.CUSTID then seq=0;
 if first.CUSTID or lag(Loan_Amnt) ne . then  seq+1;
 run;
proc sql;
create table want as
select *,case when sum(Loan_Amnt)=. then . else seq end as new_seq
 from temp 
  group by CUSTID,seq
   order by CUSTID,date;
quit;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 05 Sep 2025 08:14:29 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2025-09-05T08:14:29Z</dc:date>
    <item>
      <title>create seq number by customer ID+Event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-seq-number-by-customer-ID-Event-date/m-p/974179#M377831</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;
&lt;P&gt;I have 2 tables- loans tables (loans that customer take) and offer table (offers that customer get on digital).&lt;/P&gt;
&lt;P&gt;I want to combine these 2 tables in order to see the offers each customer get previous to each loan.&lt;/P&gt;
&lt;P&gt;Offers that were made after loan are not relevant.&lt;/P&gt;
&lt;P&gt;My task-&lt;/P&gt;
&lt;P&gt;I want to create sequence number in the following rules-&lt;/P&gt;
&lt;P&gt;For each customer (CustID)- create seq numbers based on loans date only.&lt;/P&gt;
&lt;P&gt;So, when there is a new loan then seq number jump by 1&lt;/P&gt;
&lt;P&gt;Note- After last loan seq will be null (see customer 2)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;desired table&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Ronein_0-1757053058151.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/109636i2FE278AD1C4A33CD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Ronein_0-1757053058151.png" alt="Ronein_0-1757053058151.png" /&gt;&lt;/span&gt;&lt;/P&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;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data loans_tbl;
format date_Loan ddmmyy10.;
Input CUSTID	date_Loan :date9.	Loan_Amnt;
cards;
111 08JUL2025 30000
222 17JUL2025 15000
222 20JUL2025 10000
333 28JUL2025 17000
444 02JUL2025 5000
444 03JUL2025 12000
444 29JUL2025 18000
;
Run;



Data offers_tbl;
format date_offer ddmmyy10.;
Input CUSTID	date_offer :date9.	Offer_Amnt;
cards;
111 02JUL2025 20000
111 05JUL2025 20000
111 06JUL2025 40000
111 09JUL2025 8000
111 28JUL2025 15000
222 15JUL2025 15000
222 18JUL2025 40000
333 22JUL2025 20000
444 28JUL2025 50000
;
Run;


proc sql;
create table want1 as
select COALESCE(a.CUSTID,b.CUSTID)  as CUSTID,
       COALESCE(date_Loan,date_offer) as date format=ddmmyy10.,
	   a.Loan_Amnt,
	   b.Offer_Amnt
from loans_tbl as a
full join offers_tbl as b
on a.date_Loan=b.date_offer and a.CUSTID=b.CUSTID
order by calculated CUSTID,calculated date
;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Sep 2025 06:17:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-seq-number-by-customer-ID-Event-date/m-p/974179#M377831</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2025-09-05T06:17:44Z</dc:date>
    </item>
    <item>
      <title>Re: create seq number by customer ID+Event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-seq-number-by-customer-ID-Event-date/m-p/974200#M377837</link>
      <description>&lt;P&gt;If you only consider about DATE, that would be very easy.&lt;/P&gt;
&lt;P&gt;CODE EDITED.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Data loans_tbl;
format date_Loan ddmmyy10.;
Input CUSTID	date_Loan :date9.	Loan_Amnt;
cards;
111 08JUL2025 30000
222 17JUL2025 15000
222 20JUL2025 10000
333 28JUL2025 17000
444 02JUL2025 5000
444 03JUL2025 12000
444 29JUL2025 18000
;
Run;



Data offers_tbl;
format date_offer ddmmyy10.;
Input CUSTID	date_offer :date9.	Offer_Amnt;
cards;
111 02JUL2025 20000
111 05JUL2025 20000
111 06JUL2025 40000
111 09JUL2025 8000
111 28JUL2025 15000
222 15JUL2025 15000
222 18JUL2025 40000
333 22JUL2025 20000
444 28JUL2025 50000
;
Run;

data have ;
 &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;merge&lt;/STRONG&gt; &lt;/FONT&gt;loans_tbl(rename=(date_Loan=date)) offers_tbl(rename=(date_offer=date));
 by CUSTID date;
run;
data temp;
 set have;
 by CUSTID;
 if first.CUSTID then seq=0;
 if first.CUSTID or lag(Loan_Amnt) ne . then  seq+1;
 run;
proc sql;
create table want as
select *,case when sum(Loan_Amnt)=. then . else seq end as new_seq
 from temp 
  group by CUSTID,seq
   order by CUSTID,date;
quit;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Sep 2025 08:14:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-seq-number-by-customer-ID-Event-date/m-p/974200#M377837</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2025-09-05T08:14:29Z</dc:date>
    </item>
  </channel>
</rss>

