Ayuda con consulta...

15/02/2006 - 20:57 por Edgar Contreras | Informe spam
Buen dia tengan todos ustedes!...

Tengo una consulta que a mi ver es bastante trivial, pero la verdad es que
me estoy dando de topes... ojala y me puedan ayudar...

Tengo tres tablas (que para efectos de la consulta voy a resumir) con las
siguientes estructuras:

Catalogo
idcatalogo (PK)
Descrip

Entradas
identrada (PK)
idcatalogo (FK, apunta a Catalogo)
cantidad

Salidas
==idsalida (PK)
idcatalogo (FK, apunta a Catalogo)
cantidad


Sobre estas tres tablas quiero realizar una consulta que me entregue para
todos los articulos de la tabla Catalogo las sumas de las entradas y las
sumas de las salidas, todo en una sola consulta. He logrado hacer lo
siguiente:

select c.idcatalogo, sum(e.cantidad)
from catalogo c left outer join entradas e on c.idcatalogo=e.idcatalogo

select c.idcatalogo, sum(s.cantidad)
from catalogo c left outer join salidas s on c.idcatalogo=s.idcatalogo

Los resultados con estas dos consultas son los esperados. Cada una de las
consultas me arroja TODOS los registros de la tabla Catalogo y las sumas
correspondientes (haya o no entradas o salidas)...

Ahora quiero juntar las dos consultas en una sola. El resultado lo he
logrado utilizando subconsultas, pero quisiera saber si hay modo de
resolverlo utilizando joins... El query que SI funciona es:

select c.idcatalogo,
(select sum(cantidad) from entradas e where e.idcatalogo=c.idcatalogo) as
Ent,
(select sum(cantidad) from salidas s where s.idcatalogo=c.idcatalogo) as Sal
from catalogo c

Gracias!!!!...


Saludos,


Edgar Contreras
supportQUITA@ESTOgenerationdigital.net

[Conectado desde Tijuana, B.C. México]

DISCLAIMER: La información es presentada como es, sin ninguna
responsabilidad, sin garantía alguna y no otorga
derecho alguno.
 

Leer las respuestas

#1 Maxi
15/02/2006 - 21:13 | Informe spam
Hola, y porque no has seguido con los Join' o sea, se admiten mas de un join

Entonces

select c.idcatalogo, e.cantidad,s.cantidad
from catalogo c left outer join (select idcatalogo,sum(cantidad) as cantidad
From entradas group by idcatalogo) e
on e.idcatalogo = c.idcatalogo
left join (select idcatalogo,sum(cantidad) as cantidad From salidas group by
idcatalogo) s
on s.idcatalogo = c.idcatalogo







Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Edgar Contreras" escribió en el mensaje
news:
Buen dia tengan todos ustedes!...

Tengo una consulta que a mi ver es bastante trivial, pero la verdad es que
me estoy dando de topes... ojala y me puedan ayudar...

Tengo tres tablas (que para efectos de la consulta voy a resumir) con las
siguientes estructuras:

Catalogo
> idcatalogo (PK)
Descrip

Entradas
> identrada (PK)
idcatalogo (FK, apunta a Catalogo)
cantidad

Salidas
==> idsalida (PK)
idcatalogo (FK, apunta a Catalogo)
cantidad


Sobre estas tres tablas quiero realizar una consulta que me entregue para
todos los articulos de la tabla Catalogo las sumas de las entradas y las
sumas de las salidas, todo en una sola consulta. He logrado hacer lo
siguiente:

select c.idcatalogo, sum(e.cantidad)
from catalogo c left outer join entradas e on c.idcatalogo=e.idcatalogo

select c.idcatalogo, sum(s.cantidad)
from catalogo c left outer join salidas s on c.idcatalogo=s.idcatalogo

Los resultados con estas dos consultas son los esperados. Cada una de las
consultas me arroja TODOS los registros de la tabla Catalogo y las sumas
correspondientes (haya o no entradas o salidas)...

Ahora quiero juntar las dos consultas en una sola. El resultado lo he
logrado utilizando subconsultas, pero quisiera saber si hay modo de
resolverlo utilizando joins... El query que SI funciona es:

select c.idcatalogo,
(select sum(cantidad) from entradas e where e.idcatalogo=c.idcatalogo) as
Ent,
(select sum(cantidad) from salidas s where s.idcatalogo=c.idcatalogo) as
Sal
from catalogo c

Gracias!!!!...


Saludos,


Edgar Contreras


[Conectado desde Tijuana, B.C. México]

DISCLAIMER: La información es presentada como es, sin ninguna
responsabilidad, sin garantía alguna y no otorga
derecho alguno.


Preguntas similares