Solved

Complicated sql query with 3 one to many tables.

Posted on 2004-08-05
5
834 Views
Last Modified: 2008-01-09
Hola.

I have 3 tables.

1.  Parent.
    PID
    PNAME

2.  Child.
     CID
     PID_fk
     CNAME

3.  ChildAge
     CAID
     CID_fk
     Age
     Height

What I want is a select query that will return the age of the children in one column and their heights at these ages in the next columns.  So something like:

Age    Martin   Steve   Johan
1        0.4       0.5       0.6
2        0.6       0.7       0.7
3        1.0       1.2       1.15

So I dont mind building a query for each parent and I need to be able to handle upto 9 children so I dont need an exponentially complicated query.

HELP!

Asim

0
Comment
Question by:asiminator
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 23

Accepted Solution

by:
seazodiac earned 250 total points
ID: 11727000
let's say 9 is the upper limit (in my example, the name are arbitary)

select age, max(decode(upper(name), 'MARTIN', height, 0)) "Martin",
max(decode(upper(name), 'STEVE', height, 0)) "Steve",
max(decode(upper(name), 'JOHAN', height, 0)) "Johan",
max(decode(upper(name), 'SMITH', height, 0)) "Smith",
max(decode(upper(name), 'JACK', height, 0)) "Jack",
max(decode(upper(name), 'MIKE', height, 0)) "Mike",
max(decode(upper(name), 'RICHARD', height, 0)) "Richard",
max(decode(upper(name), 'TERESA', height, 0)) "Teresa",
max(decode(upper(name), 'BONNIE', height, 0)) "Bonnie"
from (select A.cid, A.name, B.age, B.height
from child A, childage B
where A.cid = B.cid_fk
and upper(A.name) in ('MARTIN', 'STEVE', 'JOHAN', 'SMITH', 'JACK', 'MIKE', 'RICHARD', 'TERESA', 'BONNIE'));

0
 
LVL 8

Expert Comment

by:sapnam
ID: 11727118
Are you going to use SQL or some tool like Report Builder finally to display this output.
0
 

Author Comment

by:asiminator
ID: 11727341
thanks for the rapid response.

I still have a problem.... when I run the query it says age is not a single-group group function.

Any ideas?

Asim
0
 
LVL 23

Expert Comment

by:seazodiac
ID: 11727358
yes, that's a syntax error, i fixed in the query below:

select age, max(decode(upper(name), 'MARTIN', height, 0)) "Martin",
max(decode(upper(name), 'STEVE', height, 0)) "Steve",
max(decode(upper(name), 'JOHAN', height, 0)) "Johan",
max(decode(upper(name), 'SMITH', height, 0)) "Smith",
max(decode(upper(name), 'JACK', height, 0)) "Jack",
max(decode(upper(name), 'MIKE', height, 0)) "Mike",
max(decode(upper(name), 'RICHARD', height, 0)) "Richard",
max(decode(upper(name), 'TERESA', height, 0)) "Teresa",
max(decode(upper(name), 'BONNIE', height, 0)) "Bonnie"
from (select A.cid, A.name, B.age, B.height
from child A, childage B
where A.cid = B.cid_fk
and upper(A.name) in ('MARTIN', 'STEVE', 'JOHAN', 'SMITH', 'JACK', 'MIKE', 'RICHARD', 'TERESA', 'BONNIE'))
group by age;
0
 

Author Comment

by:asiminator
ID: 11727445
cool.... thanks.

Youre a champ!
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

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…
Using SQL Scripts we can save all the SQL queries as files that we use very frequently on our database later point of time. This is one of the feature present under SQL Workshop in Oracle Application Express.
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
This video shows how to Export data from an Oracle database using the Original Export Utility.  The corresponding Import utility, which works the same way is referenced, but not demonstrated.

734 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