Oracle -- Multiple SELECT statement (Part #2) ?

finance_teacher
finance_teacher used Ask the Experts™
on
Below get ALL records, which is OK,
but I only want to get managers
tied to one employee.

Adding the below "WHERE" clause fails.

SELECT     LPAD(' ', (LEVEL - 1) * 3) || pos_code
      FROM COMPANY_POSITION_STRUCTURE_TAB T
      --where pos_code = '101/3802'
CONNECT BY PRIOR POS_CODE = SUP_POS_CODE
START WITH SUP_POS_CODE = '*'
----------------------------------------------------
What SELECT or PL/SQL will allow me to
enter '133/1115' and get the below, indented ?

100/1000 OWNER
  101/3005 PRESIDENT
    101/1111 VICE PRESIDENT
      211/1115 MANAGER
       133/1115 EMPLOYEE
----------------------------------------------------
What SELECT or PL/SQL will allow me to
enter '101/1111' and get the below, indented ?

100/1000 OWNER
  101/3005 PRESIDENT
    101/1111 VICE PRESIDENT

s001.jpg
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Commented:
Try to use the following:
SELECT     LPAD(' ', (LEVEL - 1) * 3) || pos_code
      FROM COMPANY_POSITION_STRUCTURE_TAB T
CONNECT BY POS_CODE = PRIOR SUP_POS_CODE
START WITH POS_CODE = '133/1115'
order by level desc

Commented:
I forgot to comment what has changed: I just changed the side where the PRIOR was used.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial