Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How do I find the next status and next date for a subscriber and offer?

How do I find the next status and next date for a subscriber and offer?

my table:

create table myTable ( user_id,offer_id,status,status_date) as
 select   1,offer_1,Active,01/01/2021 from dual union all
 select   1, offer_1,Deactive,01/01/2022  from dual union all
 select   1,offer_2,Active,02/01/2022  from dual 

expected table:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

u_id offer_id status status_date next_status next_status_date
1 offer_1 Active 01/01/2021 Deactive 01/01/2022
1 offer_2 Active 02/01/2022 null null

>Solution :

What do these dates represent? What is 02/01/2022? 2nd of January, or 1st of February?

Anyway, outer join might help.

Setting date format (so that you’d know what is what):

SQL> alter session set nls_date_format = 'mm/dd/yyyy';

Session altered.

Sample data:

SQL> select * from mytable;

   USER_ID OFFER_I STATUS   STATUS_DAT
---------- ------- -------- ----------
         1 offer_1 Active   01/01/2021
         1 offer_1 Deactive 01/01/2022
         1 offer_2 Active   02/01/2022

Query:

SQL> select a.user_id,
  2         a.offer_id,
  3         a.status,
  4         a.status_date,
  5         b.status next_status,
  6         b.status_date next_status_date
  7    from mytable a
  8         left join mytable b
  9            on     a.user_id = b.user_id
 10               and a.offer_id = b.offer_id
 11               and a.status_date < b.status_date
 12   where a.status = 'Active';

   USER_ID OFFER_ID   STATUS   STATUS_DATE     NEXT_STATUS     NEXT_STATUS_DATE
---------- ---------- -------- --------------- --------------- ----------------
         1 offer_1    Active   01/01/2021      Deactive        01/01/2022
         1 offer_2    Active   02/01/2022

SQL>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading