Re: Consulta Sql

From: Gonzalo Guzmán <gonzalo7798(at)yahoo(dot)es>
To: "Manuel R(dot) Bercian" <maber(at)intelnet(dot)net(dot)gt>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta Sql
Date: 2004-07-02 19:53:34
Message-ID: 20040702195334.48696.qmail@web51908.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Lo que debes tener presente es que una cuenta contable es en realidad una clave compuesta, donde (segun tu plan de cuentas parece ser):

010010010001
01 --- Elemento de estado financiero
01001 --- Grupo de cuenta
01001001 --- Submayor
010010001001 --- Cuentas de detalle

Puedo estar equivocado en como tienes distribuido el plan de cuentas pero la idea es esa.
Entonces no necesitas recursividad, por que tu sabes que por ejemplo los dos primeros digitos son el elemento del estado financiero, lo que necesitas hacer seria algo asi:

select a.cuenta, a.nombcuenta, (select nombcuenta from tabla_cuenta where cuenta = substring(a.cuenta from 1 for 2)) as name_PADRE1,(select nombcuenta from tabla_cuenta where cuenta = substring(a.cuenta from 3 for 3)) as name_PADRE2
from tabla_cuenta
where tus condiciones

Yo te recomendaria usar una tabla de niveles donde indicas como esta dividido el plan de cuentas y de que digito a que digito representa cada cosa.

"Manuel R. Bercian" <maber(at)intelnet(dot)net(dot)gt> wrote: Estimados amigos estoy haciendo un programa de contabilidad
y tengo una tabla en PostgreSQL con la nomenclatura contable
la cual esta de la siguiente manera:

CUENTA NOMBCUEN CUENTA_PADRE
01 Activo
01001 Circulante 01
01001001 Cajas 01001
010010010001 Caja Uno 01001001
010010010002 Caja Dos 01001001
010010010003 Caja Tres 01001001
010010010004 Caja Cuatro 01001001
01001002 Bancos 01001
010010010001 Banco Uno 01001002
010010010002 Banco Dos 01001002
010010010003 Banco Tres 01001002
010010010004 Banco Cuatro 01001002
02 Pasivo
Etc, Etc, Etc.

Ya tengo relacionadas las tablas (que es la misma tabla)
de uno a muchos de la CUENTA a la CUENTA_PADRE lo
que quiero es tener el resultado siguiente por medio
de una consulta SQL para hacer un Data Report en Visual Basic

CUENTA NOMBCUEN CUENTA_PADRE Name_PADRE1 Name_PADRE2
01 Activo
01001 Circulante 01 Activo
01001001 Cajas 01001 Activo Circulante
010010010001 Caja Uno 01001001 Activo Circulante
010010010002 Caja Dos 01001001 Activo Circulante
010010010003 Caja Tres 01001001 Activo Circulante
010010010004 Caja Cuatro 01001001 Activo Circulante
01001002 Bancos 01001 Activo
010010010001 Banco Uno 01001002 Activo Bancos
010010010002 Banco Dos 01001002 Activo Bancos
010010010003 Banco Tres 01001002 Activo Bancos
010010010004 Banco Cuatro 01001002 Activo Bancos
02 Pasivo
De antemano muchas gracias por su ayuda

At.
Manuel R. Bercian

---------------------------(end of broadcast)---------------------------
TIP 5: ¿Has leído nuestro extenso FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

---------------------------------
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo.
Visíta Yahoo! Noticias.

In response to

  • Consulta Sql at 2004-07-02 19:03:03 from Manuel R. Bercian

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message olivia jurado 2004-07-02 20:18:47 Hola lista
Previous Message Alvaro Herrera 2004-07-02 19:46:32 Re: una pregunta tecnica