Consulta compleja

From: Ricardo Fuentes Pereira <rfuentesp(at)gmail(dot)com>
To: "'pgsql-es-ayuda(at)postgresql(dot)org'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Consulta compleja
Date: 2005-05-27 13:39:53
Message-ID: 42972329.5060209@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ing. Jhon Carrillo - Caracas, Venezuela 2005-05-27 13:42:27 Re: returns de las funciones
Previous Message Jairo Martín Miguel 2005-05-27 04:59:28 asignar a una variable el resultado de una función