Re: connect by para postgres???

From: "Osvaldo Rivas" <spadons(at)gmail(dot)com>
To: Rowry Jonathan Vásquez Prevate Llaguno <vszjvll(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: connect by para postgres???
Date: 2007-10-17 01:40:46
Message-ID: 001401c8105e$c0e43290$8b00a8c0@INFORMATICA
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Excelente la verdad que no me fije en los mensajes anteriores, ahora esto podria servirme pero no cumple el objetivo de mi necesidad o no se si lo estoy comprendiendo bien nada mas. Yo necesito identicar que un deposito es un subconjunto de de otro que está en la misma tabla, de esta forma no tendré que crear una tabla por cada nivel de depositos tambien la aplicación se hace mas dinamica porque si se desea agregar mas niveles no se toca la estructura de tablas.

También ya tengo algo echo bajo esta estructura: por ejemplo en mi aplicación:

el primer bloque de depositos consulta:

select * form depositos where nivel = 1; --En la aplicacion lista todos los depositos nivel uno y cuando el usuario selecciona uno aparece otra lista abajo donde

select * from depositos where deposito padre = deposito_seleccionado_arriba; En la aplicacion aparecen todos los subdepositos del deposito seleccionado en el bloque anterior y así sucesivamente...

Con esto solucioné este problema, el tema es cuando quiero hacer un reporte sobre esta estructura. por ejemplo; existencias en los depositos de nivel 1; donde tengo que sumar la existencia de todos los sub depositos agrupados por los depositos de nivel 1.

no se si me estoy expresando bien me cuesta un poco explicar lo que estoy buscando, en oracle es muy utilizada esta estructura pues se cuenta con el "connect by" pero no se si utilizarlo con postgres o buscar otra estructura de tablas.

No se como estamos con los animos en las comparaciones con oracle, y no se si les molesta. De ser así por favor diganmenlo!!!

----- Original Message -----
From: Rowry Jonathan Vásquez Prevate Llaguno
To: Osvaldo Rivas
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Wednesday, October 17, 2007 9:08 AM
Subject: Re: [pgsql-es-ayuda] connect by para postgres???

Haber, mira Postgres te permite a la tabla que crees heredar funciones de las tablas superiores creadas en una jerarquia de herencia, con una cláusula que es INHERITS. Ahora este se usa para diseño de objetos como bien se comento en un hilo hace un tiempo.
Si quieres generar una jerarquia de tablas lo mejor es referenciar tu tabla padre en tu tabla hija como foreign key y en la tabla padre colocar la primary key de la tabla hija como secondary key, de esta forma tendrás una jerarquia entre tablas. De esta forma te servira para generar tu consulta SQL y dar los resultados que quieres (segun entiendo tu pregunta,)...
saludos

El día 16/10/07, Osvaldo Rivas <spadons(at)gmail(dot)com> escribió:
Señores, será que existe algo parecido al "connect by" de oracle en postgres? es utilizado por ejemplo para:

Si tego una tabla depositos, por ejemplo:

id_deposito, descripcion, nivel, deposito_padre

esto es una tabla donde un deposito de nivel inferior tiene como padre a un deposito de nivel superior, ya sabran como va la mano.

en oracle por ejemplo si quiero hacer una consulta que me despliegue los depositos que dependen de un "deposito_x" en un arbol hago una consulta mas o menos como la siguiente:

select
id_deposito,
descripcion
from
depositos
connect by prior
deposito_padre = id_deposito
start with
id_deposito = deposito_x

No se si se entiende la pregunta? o si alguien conoce otra forma de hacer una tabla con gerarquia y dependencia le agradeceria la ayuda.

--
JONATHAN VÁSQUEZ P. LLAGUNO

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-10-17 01:43:49 Re: Error en el log
Previous Message Jaime Casanova 2007-10-17 01:29:12 Re: Wikipedia - Primer Paso