Home » SQL & PL/SQL » SQL & PL/SQL » To take Previous date (Oracle 11g)
To take Previous date [message #637234] |
Wed, 13 May 2015 07:11 |
|
rohit_shinez
Messages: 139 Registered: January 2015
|
Senior Member |
|
|
Hi,
i need to display the previous start date and end date if the date of main table is falling between start date and end date of ref table. for eg
create table ref_table(col_1 number,start_date date,end_date date);
create table main_table(date_1 date);
insert into ref_table
select 12,to_date(01/01/2015,DD-MON-YYYY),to_date(31/01/2015,DD-MON-YYYY) from dual;
insert into ref_table
select 12,to_date(01/02/2015,DD-MON-YYYY),to_date(28/02/2015,DD-MON-YYYY) from dual;
insert into ref_table
select 12,to_date(01/03/2015,DD-MON-YYYY),to_date(31/03/2015,DD-MON-YYYY) from dual;
insert into ref_table
select 12,to_date(01/04/2015,DD-MON-YYYY),to_date(30/04/2015,DD-MON-YYYY) from dual;
insert into main_table
select to_date(20/03/2015,DD-MON-YYYY) from dual;
ref_table
col_1 start_date end_date
12 01/01/2015 31/01/2015
12 01/02/2015 28/02/2015
12 01/03/2015 31/03/2015
12 01/04/2015 30/04/2015
Main_table
date_1
20/03/2015
Output_table
col_1 start_date end_date
12345678 01/02/2015 28/02/2015
date is falling between 01/03/201 and 31/03/2015 i need to take the previous start date and end date
01/02/2015,28/02/2015
|
|
|
|
|
Re: To take Previous date [message #637239 is a reply to message #637236] |
Wed, 13 May 2015 07:35 |
|
rohit_shinez
Messages: 139 Registered: January 2015
|
Senior Member |
|
|
create table ref_table(col_1 number,start_date date,end_date date);
create table main_table(date_1 date);
insert into ref_table
select 12,to_date('01-JAN-2015',DD-MON-YYYY),to_date('31-JAN-2015',DD-MON-YYYY) from dual;
insert into ref_table
select 12,to_date('01-JAN-2015',DD-MON-YYYY),to_date('28-FEB-2015',DD-MON-YYYY) from dual;
insert into ref_table
select 12,to_date('01-MAR-2015',DD-MON-YYYY),to_date('31-MAR-2015',DD-MON-YYYY) from dual;
insert into ref_table
select 12,to_date('01-APR-2015',DD-MON-YYYY),to_date('30-APR-2015',DD-MON-YYYY) from dual;
insert into main_table
select to_date('20-MAR-2015',DD-MON-YYYY) from dual;
ref_table
col_1 start_date end_date
12 01/01/2015 31/01/2015
12 01/02/2015 28/02/2015
12 01/03/2015 31/03/2015
12 01/04/2015 30/04/2015
Main_table
date_1
20/03/2015
Output_table
col_1 start_date end_date
12 01/02/2015 28/02/2015
|
|
|
Re: To take Previous date [message #637243 is a reply to message #637239] |
Wed, 13 May 2015 07:45 |
John Watson
Messages: 8931 Registered: January 2010 Location: Global Village
|
Senior Member |
|
|
Think it through. First, select all rows from ref_table where end_date is less than the date in main_table. Write the query to do that. Then take that result set, and select the row with the highest end_date.
|
|
|
|
Re: To take Previous date [message #637254 is a reply to message #637250] |
Wed, 13 May 2015 09:20 |
|
rohit_shinez
Messages: 139 Registered: January 2015
|
Senior Member |
|
|
create table ref_table(col_1 number,start_date date,end_date date);
create table main_table(date_1 date);
insert into ref_table
select 12,to_date('01-JAN-2015','DD-MON-YYYY'),to_date('31-JAN-2015','DD-MON-YYYY') from dual;
insert into ref_table
select 12,to_date('01-JAN-2015','DD-MON-YYYY'),to_date('28-FEB-2015','DD-MON-YYYY') from dual;
insert into ref_table
select 12,to_date('01-MAR-2015','DD-MON-YYYY'),to_date('31-MAR-2015','DD-MON-YYYY') from dual;
insert into ref_table
select 12,to_date('01-APR-2015','DD-MON-YYYY'),to_date('30-APR-2015','DD-MON-YYYY') from dual;
insert into main_table
select to_date('20-MAR-2015','DD-MON-YYYY') from dual;
[Updated on: Wed, 13 May 2015 09:44] Report message to a moderator
|
|
|
|
Re: To take Previous date [message #637264 is a reply to message #637259] |
Wed, 13 May 2015 16:28 |
John Watson
Messages: 8931 Registered: January 2010 Location: Global Village
|
Senior Member |
|
|
You would find life easier if you thought before writing. In your last post, you refer to ref_table1 when you mean ref_table. Well, OK, I can see what you mean. But then you refer to col_2 and col_3. What are they?
You will never make a successful career in IT if you do not pay attention to detail.
|
|
|
Goto Forum:
Current Time: Thu Apr 25 14:56:32 CDT 2024
|