Home » SQL & PL/SQL » SQL & PL/SQL » Query Analytics (Oracle 11g)
Query Analytics [message #651095] Wed, 11 May 2016 05:28 Go to next message
srinivas.k2005
Messages: 404
Registered: August 2006
Senior Member

Create table x_inv
( 
Inv_num Number,
Inv_date Date
);


Insert into x_inv values (400,sysdate);

Insert into x_inv values (300,sysdate-1);

Insert into x_inv values (200,sysdate-2);

Insert into x_inv values (100,sysdate-3);




SQL> select * from x_inv order by Inv_date;

INV_NUM INV_DATE
---------- -----------
100 5/8/2016
200 5/9/2016
300 5/10/2016
400 5/11/2016


Requirement:
If I pass inv_num (ex: 300) as input to the query and I should get next Inv_num(Ex : 400) as result( Result is based on Inv_date).

For example, If input for query is 300, Inv_date for Inv_num 300 is sysdate-1.
Next higher date is sysdate, so result will be inv_num of next higher Inv_date ( Result is 400).

Please advise.

Regards,
SRK

Re: Query Analytics [message #651102 is a reply to message #651095] Wed, 11 May 2016 06:23 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

SQL> with
  2    data as (
  3      select inv_num, inv_date, lag(inv_num) over (order by inv_date) prev_num
  4      from x_inv
  5    )
  6  select inv_num, inv_date
  7  from data
  8  where prev_num = &prev_num
  9  /
Enter value for prev_num: 300
   INV_NUM INV_DATE
---------- -------------------
       400 11/05/2016 13:21:18

Re: Query Analytics [message #651104 is a reply to message #651102] Wed, 11 May 2016 06:42 Go to previous message
srinivas.k2005
Messages: 404
Registered: August 2006
Senior Member
Thanks a lot Surprised
Previous Topic: help in query
Next Topic: External table not fully loaded
Goto Forum:
  


Current Time: Thu Apr 25 16:11:45 CDT 2024