SQL Server - Joins

   
Vista:

Joins

Publicado por Fernando (2 intervenciones) el 10/09/2008 20:15:44
Hola.

Tengo una preg.
Hago una consulta a la tabla de hechos y me muestra 6000 registros.
Hice unos joins a los catalogos para desplegar los nombres de los codigo.
La cosa es que ya lo realice, pero cuando lanzo el query me da menos registros (2300)

Tengo algo asi:

select hechos.cmp1, dim1.cmp2, dim2.cmp3, a.cantidad
from hechos left join dim1
on hechos.cmp1=dim1.cmp1
left join dim2
on hechos.cmp2=dim2.cmp2
where year(fecha) = 2006

utilizo el left pensando en que hay valores en la tabla de hechos que no estan en mi catalogo.

Lo estare haciendo bien?
Gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Joins

Publicado por Isaias (3308 intervenciones) el 10/09/2008 21:06:09
¿Que resultado obtienes si utilizas el JOIN simple?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Joins

Publicado por Fernando (2 intervenciones) el 10/09/2008 21:23:18
Hay valores que no estan en mi catalogo. Al hacerles inner join solo me presenta las coincidencias en el catalogo, por lo que el numero de registros es menor.

Yo creo que es algo en el group by, olvide anotarlo.
Como que esta agrupando los NULL obtenidos en cmp1 o cmp2.

select hechos.cmp1, dim1.cmp2, dim2.cmp3, a.cantidad
from hechos left join dim1
on hechos.cmp1=dim1.cmp1
left join dim2
on hechos.cmp2=dim2.cmp2
where year(fecha) = 2006
group by cmp1, cmp2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Joins

Publicado por Isaias (3308 intervenciones) el 11/09/2008 02:48:18
Podrias intentar con FULL JOIN y descartar aquellos que sean NULL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar