?
Solved

Oracle 11 - side by side data different date criteria

Posted on 2011-03-07
7
Medium Priority
?
282 Views
Last Modified: 2012-05-11
Hello

My original query ..
select
col1,
col2,
date_year
from table1
where date_year = '2009'

Result set

col1  col2   date_year
a      12      2009
b      14      2009

What I now want to achieve is another result set to the right but with
previous year data - I do not want to hard code this bit - how can I do this.
I only want to parameterize the year 2009
So, my result set would now be...
col1  col2   date_year  col1a  col1b     date_year
a      12      2009      a      45         2008
b      14      2009      b      16         2008
0
Comment
Question by:philsivyer
  • 4
  • 3
7 Comments
 
LVL 79

Expert Comment

by:slightwv (䄆 Netminder)
ID: 35058827
What is the correlation?

What 2009 colb goes with what 2008 colb?

More sample data and expected results would help.
0
 

Author Comment

by:philsivyer
ID: 35058959
Hope this makes sense..
Query 1
select
col1,
col2,
date_year
from table1
where date_year = '2009'

Result set....
col1  col2   date_year
a      12      2009
b      14      2009
..............................
Query 2
select
col1,
col2,
date_year
from table1
where date_year = '2008'
Result set....
col1  col2   date_year
a      15.5    2008
b      11      2008

So, I would like one query which could return the following data

col1  col2   date_year col1(1) col2(1)  date_year(1)
a      12      2009     a       15.5      2008
b      14      2009     b       11        2008
0
 
LVL 79

Expert Comment

by:slightwv (䄆 Netminder)
ID: 35059001
So for col1 there is always a one-to-one correlation across years?

On other words: for col1='a', there is only EVER a single row per year.
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:philsivyer
ID: 35059017
Correct
0
 
LVL 79

Accepted Solution

by:
slightwv (䄆 Netminder) earned 2000 total points
ID: 35059159
Try this
drop table tab1 purge;
create table tab1 (col1 char(1), col2 number, datE_year char(4));

insert into tab1 values('a',12,'2009');
insert into tab1 values('b',14,'2009');
insert into tab1 values('a',15.5,'2008');
insert into tab1 values('b',11,'2008');
commit;


select col1, col2, date_year, prev_col1, prev_col2, prev_year
from
(
select col1, col2, date_year,
	lead(col1) over(partition by col1 order by col1, date_year desc) prev_col1,
	lead(col2) over(partition by col1 order by col1, date_year desc) prev_col2,
	lead(date_year) over(partition by col1 order by date_year desc) prev_year
from tab1
)
where date_year = '2009'
/

Open in new window

0
 

Author Comment

by:philsivyer
ID: 35069048
Thanks - this works.
0
 

Author Closing Comment

by:philsivyer
ID: 35069050
Thanks
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Background In several of the companies I have worked for, I noticed that corporate reporting is off loaded from the production database and done mainly on a clone database which needs to be kept up to date daily by various means, be it a logical…
Shell script to create broker configuration file using current broker Configuration, solely for purpose of backup on Linux. Script may need to be modified depending on OS-installation. Please deploy and verify the script in a test environment.
This video shows syntax for various backup options while discussing how the different basic backup types work.  It explains how to take full backups, incremental level 0 backups, incremental level 1 backups in both differential and cumulative mode a…
This video shows how to configure and send email from and Oracle database using both UTL_SMTP and UTL_MAIL, as well as comparing UTL_SMTP to a manual SMTP conversation with a mail server.

584 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question