Re: Consulta compleja

From: "Jorge Vidal Martinez" <jvm(at)utenet(dot)com(dot)ar>
To: "Ricardo Fuentes Pereira" <rfuentesp(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta compleja
Date: 2005-05-28 04:57:03
Message-ID: 000201c56341$b6bb4f00$9d9145c8@XP
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ricardo:
La estuve mirando si agrupas por RUC, y join ( en el where no es
eficiente) por RUC, no tendrias que tener diferencias.
cuando decis group by necesarios, lo pense y se me ocurrio que solo cabe
uno, RUC, o tenes otros campos ?
por fi, aclara cuales son .

----- Original Message -----
From: "Ricardo Fuentes Pereira" <rfuentesp(at)gmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Friday, May 27, 2005 10:39 AM
Subject: [pgsql-es-ayuda] Consulta compleja

> Hola lista.
> Tengo el siguiente problema.
> Necesitaba generar una consulta (SP) para saber cuanto le he comprado a un
> proveedor en especifico (monto).
> La consulta que hice fue la siguiente:
>
> .. inicio codigo
>
> SELECT *
> FROM (
> SELECT * ,
> (fact.compra.sum_valor_fc + fact_gasto.sum_valor_fg) AS sum_valor
> FROM sx_prov prov,
> -- fact_compra
> -- recorro la tabla sx_fact_compra segun el rut
> -- para obtener a cuanto ascienden las factura de compra
> (
> SELECT COALESCE(SUM(valor_neto * (1 + valor_iva)), 0) AS
> sum_valor_fc
> FROM sx_fact_compra
> WHERE rut = $1
> ) AS fact_compra,
> -- fact_gasto
> -- analogo a la sx_fact_compra
> (
> SELECT COALESCE(SUM(valor_neto * (1 + valor_iva)), 0) AS
> sum_valor_fg
> FROM sx_fact_gasto
> WHERE rut = $1
> ) AS fact_gasto
> WHERE prov.rut = $1
> GROUP BY
> --- los GROUP BY necesarios
> ) AS tabla
> ORDER BY sum_valor DESC
>
> -- fin codigo
>
> Y funciona correctamente.
> Ahora necesito una funcion que devuelva una lista de proveedores con lo
> que le he comprado a cada uno.
> Intenté con algo así:
>
> SELECT *
> FROM (
> SELECT * ,
> (fact.compra.sum_valor_fc + fact_gasto.sum_valor_fg) AS sum_valor
> FROM sx_prov prov,
> -- fact_compra
> -- recorro la tabla sx_fact_compra segun el rut
> -- para obtener a cuanto ascienden las factura de compra
> (
> SELECT rut, COALESCE(SUM(valor_neto * (1 + valor_iva)), 0) AS
> sum_valor_fc
> FROM sx_fact_compra
> GROUP BY rut
> ) AS fact_compra,
> -- fact_gasto
> -- analogo a la sx_fact_compra
> (
> SELECT rut, COALESCE(SUM(valor_neto * (1 + valor_iva)), 0) AS
> sum_valor_fg
> FROM sx_fact_gasto
> GROUP BY rut
> ) AS fact_gasto
> WHERE prov.rut = fact_compra.rut
> AND prov.rut = fact_gasto.rut
> GROUP BY
> --- los GROUP BY necesarios
> ) AS tabla
> ORDER BY sum_valor DESC
>
> Pero al recuperarla me entrega sumas erroneas. ¿Alguna idea de por que
> ocurre esto?
> ¿Cual tendria que ser la consulta?
>
> Salu2
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envíe "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.322 / Virus Database: 267.2.0 - Release Date: 27/05/2005
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jorge Vidal Martinez 2005-05-28 05:02:18 Re: formato de fecha
Previous Message Jorge Vidal Martinez 2005-05-28 04:14:34 Re: Estandar Programacion Base de Datos