Relacion entre tablas

13/12/2005 - 10:27 por Kike | Informe spam
Hola Grupo:

Me he fijado que de pende de la relación que establezca:

1º- Despues de la WHERE
Where
dbo.TBLAbonados.id_Abonado *= dbo.TBLARBAbonados.id_Abonado and
dbo.TBLAbonados.id_Abonado *= dbo.TBLBeneficiariosAbonados.id_Abonado and
(TBLARBAbonados.Codigomovimiento =1)

2º-Antes de la WHERE
LEFT OUTER JOIN dbo.TBLARBAbonados ON dbo.TBLAbonados.id_Abonado dbo.TBLARBAbonados.id_Abonado
LEFT OUTER JOIN dbo.TBLBeneficiariosAbonados ON dbo.TBLAbonados.id_Abonado dbo.TBLBeneficiariosAbonados.id_Abonado
where
(TBLARBAbonados.Codigomovimiento =1)


-El primero me devuelve todos los codigoMovimiento igual a 1 pero a
demas todos aquellos que no tengan NINGUN codigo de movimiento.
-El segundo solo me devuelve aquellos que tengan codigo movimiento igual
a 1

No se a que se debe, en el caso de querer utilizar el primer caso como
solucionarlo, porque lo he intentado con:
con comparaciones is null, con la funcion isnull y nada .

Muchas Gracias
Saludos.
 

Leer las respuestas

#1 Dario R. Ayala
13/12/2005 - 13:45 | Informe spam
Kike, el operador *= es obsoleto y se recomienda no utilizarlo, en su
lugar podés usar LEFT OUTER JOIN ya que el primero puede retornar
resultados no deseados en algunos casos. Revisa este link

http://msdn.microsoft.com/library/d...9_0zqr.asp

Saludos

Dario R. Ayala

Microsoft DCE 2005 2E - DCE 3E



Kike wrote:
Hola Grupo:

Me he fijado que de pende de la relación que establezca:

1º- Despues de la WHERE
Where
dbo.TBLAbonados.id_Abonado *= dbo.TBLARBAbonados.id_Abonado and
dbo.TBLAbonados.id_Abonado *= dbo.TBLBeneficiariosAbonados.id_Abonado and
(TBLARBAbonados.Codigomovimiento =1)

2º-Antes de la WHERE
LEFT OUTER JOIN dbo.TBLARBAbonados ON dbo.TBLAbonados.id_Abonado > dbo.TBLARBAbonados.id_Abonado
LEFT OUTER JOIN dbo.TBLBeneficiariosAbonados ON dbo.TBLAbonados.id_Abonado > dbo.TBLBeneficiariosAbonados.id_Abonado
where
(TBLARBAbonados.Codigomovimiento =1)


-El primero me devuelve todos los codigoMovimiento igual a 1 pero a
demas todos aquellos que no tengan NINGUN codigo de movimiento.
-El segundo solo me devuelve aquellos que tengan codigo movimiento igual
a 1

No se a que se debe, en el caso de querer utilizar el primer caso como
solucionarlo, porque lo he intentado con:
con comparaciones is null, con la funcion isnull y nada .

Muchas Gracias
Saludos.




Preguntas similares