Friday, June 12, 2009

Retrieve a Reporting Hierarchy

SELECT LEVEL
,A.POSITION_NBR
,A.REPORTS_TO
FROM (
      SELECT A.POSITION_NBR
      ,A.REPORTS_TO
      FROM PS_POSITION_DATA A
      WHERE A.EFFDT = (SELECT MAX(A1.EFFDT)
                       FROM PS_POSITION_DATA A1
                       WHERE A1.POSITION_NBR = A.POSITION_NBR
                       AND A1.EFFDT <= SYSDATE ) 
      ) A  
START WITH A.POSITION_NBR = :1  
CONNECT BY PRIOR A.POSITION_NBR = A.REPORTS_TO  
AND A.POSITION_NBR <> A.REPORTS_TO
ORDER BY 1

No comments:

Post a Comment