Re: Obtengo un error al tratar de sumar dos sum

From: "Raul Andres Duque" <raulandresduque(at)hotmail(dot)com>
To: "Yessica Brinkmann" <yessica(dot)brinkmann(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Obtengo un error al tratar de sumar dos sum
Date: 2006-12-20 12:11:43
Message-ID: BAY135-DAV15682CBB7B351D907DEEAABACF0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Yessica ya sólo falta el último paso:

Utiliza el UNION como subquery y utiliza un alias para "referenciar" la
sumatorias obtenidas del subquery. Quedaría algo como:

SELECT SUM(Valor)
FROM
(
SELECT sum(TBL_VENTAS.monto) AS valor
FROM TBL_VENTAS
WHERE TBL_VENTAS.Id_Empresa = 231
UNION
SELECT sum(TBL_EXPORTACIONES.monto) AS Valor
FROM TBL_EXPORTACIONES
WHERE TBL_EXPORTACIONES.Id_Empresa = 231
)

Cualquier duda no dudes en consultarla a la lista.

NOTA: Recuerda copiar tus mensajes a la lista (pueden haber otras personas
que esten siguiendo tu caso o simplemente están interesados en conocer la
solución).

Atentamente,

RAUL DUQUE
Bogotá, Colombia

----- Original Message -----
From: "Yessica Brinkmann" <yessica(dot)brinkmann(at)gmail(dot)com>
To: "Raúl Andrés Duque Murillo" <raulandresduque(at)hotmail(dot)com>
Sent: Tuesday, December 19, 2006 3:48 PM
Subject: Re: [pgsql-es-ayuda] Obtengo un error al tratar de sumar dos sum

Buenas tardes.
Muchas gracias por tu interés.
Ya probé las dos opciones que me planteaste, con otro ejemplo similar,
y con ninguna de las dos obtuve el resultado deseado, no sé si tal vez
estoy planteando mal las cosas.
a) Hacer un join entre las tablas
Si hago
select sum(TBL_VENTAS.monto) from TBL_VENTAS
WHERE TBL_VENTAS.Id_Empresa=231
Obtengo el resultado siguiente:
500000

y luego con
select sum(TBL_EXPORTACIONES.monto) from TBL_EXPORTACIONES
WHERE TBL_EXPORTACIONES.Id_Empresa=231
obtengo:
760000

Al hacer el join:
select sum(TBL_VENTAS.monto) + sum(TBL_EXPORTACIONES.monto)
from TBL_VENTAS JOIN TBL_EXPORTACIONES
ON TBL_VENTAS.Id_Empresa=TBL_EXPORTACIONES.Id_EmpresaWHERE
TBL_VENTAS.Id_Empresa = 231
obtengo como resultado
5540000

b) Utilizando un UNION
SELECT sum(TBL_VENTAS.monto)
FROM TBL_VENTAS
WHERE TBL_VENTAS.Id_Empresa = 231
UNION
SELECT sum(TBL_EXPORTACIONES.monto)
FROM TBL_EXPORTACIONES
WHERE TBL_EXPORTACIONES.Id_Empresa = 231
Obtengo el siguiente resultado:
500000
760000
o sea, las dos sumas parciales por separado, y no el total.
Como ya te dije, no sé si esta es la forma en que estabas pensando
plantear las cosas.
Agradeceré cualquier comentario adicional.
Yessica.

El 19/12/06, Raúl Andrés Duque Murillo<raulandresduque(at)hotmail(dot)com>
escribió:
> Yessica, estas generando un producto cartesiano entre las dos tablas, como
> comenta Alvaro, postgresql esta haciendo lo que les estas indicando (que a
> tu modo de ver es erroneo), debes replantiear tu query, tal vez colocando
> un
> join entre las dos tablas o usando un union.
>
> Atentamente,
>
> RAUL DUQUE
> Bogotá, Colombia
>
> >From: "Yessica Brinkmann" <yessica(dot)brinkmann(at)gmail(dot)com>
> >To: pgsql-es-ayuda(at)postgresql(dot)org
> >Subject: [pgsql-es-ayuda] Obtengo un error al tratar de sumar dos sum
> >Date: Tue, 19 Dec 2006 13:48:16 -0400
> >
> >Buenas tardes lista.
> >Escribo desde Asunción, Paraguay.
> >Soy nueva usando Postgres y usando sql inclusive.
> >Tengo el siguiente problema:
> >Cuando ejecuto el siguiente query obtengo el resultado que
> >indico a continuación:
> >select sum(productor_infraestructura.sup_real) from
> >productor_infraestructura
> >Resultado del query= 172
> >
> >Y cuando ejecuto este otro:
> >select sum (proyecto.costo) from proyecto
> >Resultado del query=100000
> >
> >Ahora, si ejecuto:
> >select sum(productor_infraestructura.sup_real) + sum(proyecto.costo) as
> >total
> >from productor_infraestructura, proyecto
> >obtengo como Resultado del query=1.50017e+006
> >y Debe ser 100172
> >
> >Alguien tiene alguna idea de porqué obtengo estos resultados?
> >Agradeceré cualquier contribución.
> >Yessica.
> >
> >---------------------------(fin del mensaje)---------------------------
> >TIP 7: no olvides aumentar la configuración del "free space map"
>
> _________________________________________________________________
> MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Victor Lopez 2006-12-20 13:04:00 Re: Como se que me he equivocado?
Previous Message jose ricardo 2006-12-20 12:07:27 Re: Como se que me he equivocado?