Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group