In this forum you can share stuff related to Oracle 11g, 10g, 9i.
nadia
Posts: 15 Joined: Mon May 14, 2007 1:26 am
Location: Syria
Post
by nadia » Tue Sep 25, 2007 4:22 am
Hi,
I need some help on how to do this:
I've got a data set:
Code: Select all
Deptno Ename
10 MILLER
20 FORD
10 KING
30 JAMES
10 CLARK
20 ADAMS
The goal is to have 1 row only per Deptno
Result set should look like:
Code: Select all
Deptno Ename1 Ename2 Ename3
10 MILLER KING CLARK
20 FORD ADAMS
30 JAMES
Any Ideas?
Thanks
admin
Posts: 2063 Joined: Fri Mar 31, 2006 12:59 am
Location: Pakistan
Contact:
Post
by admin » Tue Sep 25, 2007 5:57 am
nadia
Posts: 15 Joined: Mon May 14, 2007 1:26 am
Location: Syria
Post
by nadia » Wed Sep 26, 2007 3:42 am
Hi,
I'm sorry, there was a mistake in the question.
What i mean is that I've got a data set:
Code: Select all
Location Deptno Ename
NEW YORK 10 MILLER
NEW YORK 20 FORD
CHICAGO 10 KING
NEW YORK 30 JAMES
CHICAGO 20 ADAMS
The goal is to have 1 row only per Deptno
Result set should look like for deptno=10:
Code: Select all
Location 10 20 30
NEW YORK MILLER FORD JAMES
CHICAGO KING ADAMS
Any Ideas?
Thanks
amitm_66
Posts: 6 Joined: Fri Oct 26, 2007 9:26 am
Location: India
Post
by amitm_66 » Fri Oct 26, 2007 10:20 am
SELECT MAX(CASE WHEN dept = 10 THEN ename END) dept_10,
MAX(CASE WHEN dept = 20 THEN ename END) dept_20,
MAX(CASE WHEN dept = 30 THEN ename END) dept_30
from (select dept,empno,ename,row_number() over(PARTITION BY dept ORDER BY ename) rn from emp) x
group by rn
Users browsing this forum: No registered users and 11 guests