Re: Recursive select

Поиск
Список
Период
Сортировка
От knut.suebert@web.de
Тема Re: Recursive select
Дата
Msg-id 20011104180306.A2309@cascal.vtb
обсуждение исходный текст
Ответ на Re: Recursive select  (71062.1056@compuserve.com (--CELKO--))
Список pgsql-sql
--CELKO-- schrieb:

> Another way of representing trees is to show them as nested sets. 

Good evening, 

that's what I needed!

To limit the result to entries below one node, I'd use something like
 SELECT P1.lft, COUNT(P2.emp) AS indentation, P1.emp    FROM Personnel AS P1, Personnel AS P2    WHERE P1.lft BETWEEN
P2.lftAND P2.rgt     AND p1.lft>(SELECT lft FROM personnel WHERE emp='Chuck')     AND p1.rgt<(SELECT rgt FROM personnel
WHEREemp='Chuck')   GROUP BY P1.emp, p1.lft ORDER BY P1.lft;
 
  lft | indentation |    emp      -----+-------------+------------    5 |           3 | Donna         7 |           3 |
Eddie        9 |           3 | Fred       (3 rows)
 

for emp='Albert' it returns
  lft | indentation |    emp      -----+-------------+------------    2 |           2 | Bert          4 |           2 |
Chuck        5 |           3 | Donna         7 |           3 | Eddie         9 |           3 | Fred       (5 rows)
 

My question is, how to limit this result to (Albert's indentation)+1?

Thanks,
Knut Sübert


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Josh Berkus"
Дата:
Сообщение: Re: Strange Problem As Type Casting
Следующее
От: "Nikhil G. Daddikar"
Дата:
Сообщение: Generating list of days in a given time interval