Consulta por Left Outer Join

02/07/2008 - 12:32 por Claudio | Informe spam
Hola,

entiendo que esta es una consulta basica, pero no la puedo resolver y por
eso la tiro aca. Quiero resolver en una misma consulta lo siguiente :

Select campo1,sum(tabla2.campo2),sum(tabla2.campo3) from tabla1 letf outer
join tabla2 on
tabla1.campo1=tabla2.campo1 where tabla2.estado<>'B'
group by campo1

el tema es que en la tabla2 pueden o no existir registros, pero igual debo
listar todos los que existen en tabla1. El tema es que existen registros en
tabla2 registros con Estado='A' y en lugar de sumarlos en el mismo registro,
me agrega en la consulta otro registro, supongo porque encuentra que mas
alla del group by, son registros distintos, por mas que para mi sean del
mismo tipo (campo1). Es decir , al agregar una condicion en el where sobre
campos de la tabla2, se me anula el Left Outer Join y no me trae aquellos
registros que solo existen en la tabla1, pero si la saco del Where, me trae
mas de un registro en lugar de uno solo donde tengo sumados los totales de
los campos 2 y 3 de la tabla2, porque el campo estado='A' me lo toma como
otro registro. Puedo resolver esto en una misma consulta ?
No se si he sido claro.

Gracias
Claudio

Claudio
"El hombre en su orgullo, creo a Dios, a su imagen y semejanza"
 

Leer las respuestas

#1 Alejandro Mesa
02/07/2008 - 16:08 | Informe spam
Trata:

Select
a.campo1,
sum(b.campo2),
sum(b.campo3)
from
tabla1 as a
letf outer join
tabla2 as b
on a.campo1 = b.campo1 and b.estado <> 'B'
group by
a.campo1
GO


AMB



"Claudio" wrote:

Hola,

entiendo que esta es una consulta basica, pero no la puedo resolver y por
eso la tiro aca. Quiero resolver en una misma consulta lo siguiente :

Select campo1,sum(tabla2.campo2),sum(tabla2.campo3) from tabla1 letf outer
join tabla2 on
tabla1.campo1=tabla2.campo1 where tabla2.estado<>'B'
group by campo1

el tema es que en la tabla2 pueden o no existir registros, pero igual debo
listar todos los que existen en tabla1. El tema es que existen registros en
tabla2 registros con Estado='A' y en lugar de sumarlos en el mismo registro,
me agrega en la consulta otro registro, supongo porque encuentra que mas
alla del group by, son registros distintos, por mas que para mi sean del
mismo tipo (campo1). Es decir , al agregar una condicion en el where sobre
campos de la tabla2, se me anula el Left Outer Join y no me trae aquellos
registros que solo existen en la tabla1, pero si la saco del Where, me trae
mas de un registro en lugar de uno solo donde tengo sumados los totales de
los campos 2 y 3 de la tabla2, porque el campo estado='A' me lo toma como
otro registro. Puedo resolver esto en una misma consulta ?
No se si he sido claro.

Gracias
Claudio

Claudio
"El hombre en su orgullo, creo a Dios, a su imagen y semejanza"



Preguntas similares