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
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 |