| RETRIEVE all the INFORMATION of DEPT ALONG with TWO EMPLOYEES of each DEPARTMENT [message #575288] |
Mon, 21 January 2013 23:39  |
 |
sss111ind
Messages: 282 Registered: April 2012 Location: India
|
Senior Member |

|
|
Hi All,
I WANT to RETRIEVE all the INFORMATION of DEPT ALONG with TWO EMPLOYEES of each DEPARTMENT.is any OTHER WAY to DO THIS due to performance in Oracle 10g
SELECT *
FROM DEPT D,
(SELECT DEPTNO,
MAX(DECODE(RN,1,ENAME,NULL)) ENAME1,
MAX(DECODE(RN,2,ENAME,NULL)) ENAME2
FROM
(SELECT DEPTNO,
ENAME,
ROW_NUMBER() over(partition BY DEPTNO order by ENAME) RN
FROM emp
)group by deptno
)e
WHERE e.deptno=d.deptno;
Regards,
Nathan
[SPLIT from a hijacked topic by LF]
[Updated on: Tue, 22 January 2013 01:01] by Moderator Report message to a moderator
|
|
|
|
|
|
| Re: RETRIEVE all the INFORMATION of DEPT ALONG with TWO EMPLOYEES of each DEPARTMENT [message #575304 is a reply to message #575297] |
Tue, 22 January 2013 02:20   |
 |
sss111ind
Messages: 282 Registered: April 2012 Location: India
|
Senior Member |

|
|
Hi Michel,
Which is the better way in persepctive of performace.
SELECT dname,
deptno,
loc,
MAX(DECODE(RN,1,ENAME,NULL)) ENAME1,
MAX(DECODE(RN,2,ENAME,NULL)) ENAME2
FROM
(SELECT d.DNAME,
d.deptno,
d.loc,
e.ENAME,
ROW_NUMBER() over(partition BY e.DEPTNO order by e.ENAME) RN
FROM DEPT D,
EMP E
WHERE D.DEPTNO=E.DEPTNO(+)
)
GROUP BY dname,
deptno,
loc
Regards,
Nathan
|
|
|
|
|
|
|
|
|
|
|
|