LEFT OUTER JOIN no me funciona en SQL 2005

12/07/2008 - 17:16 por Firefox | Informe spam
Hola amigos, tengo una consulta que usa LEFT OUTER JOIN y por mas que
lo intento no me devuelve todas las columnas de la primera tabla como
deberia, estoy colocando la sintaxis correctamente pero no me devuelve
bien los resultados.

Select Clientes.*, Pagos.* from Clientes
LEFT OUTER JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli


Tengo que configurar algo a nivel del servidor SQL para que la
consulta funcione correctamente ?

Gracias mil por anticipado (^_^).

Preguntas similare

Leer las respuestas

#6 Jhonny Vargas P.
13/07/2008 - 19:21 | Informe spam
Hola,

Porque no mandas las estructuras de las tablas y algunos datos de pruebas
(como te lo solicitó Maxi)... para chequear que está ocurriendo.

De todas maneras nunca he utilizado OUTER, intenta colocar solo LEFT JOIN.

Saludos,
Jhonny Vargas P.



"Firefox" escribió en el mensaje de
noticias:
On 13 jul, 05:03, "Jesús López"
wrote:
No hay nada que configurar... LEFT OUTER JOIN siempre ha funcionado
correctamente, es muy, pero que muy raro que no funcione. Lo más probable
es
que estés haciendo algo que no nos estás contando. No tendrás una
cláusula
WHERE con una condición sobre campos de Pagos ¿verdad?

Saludos:

Jesús Lópezwww.solidq.com

"Firefox" escribió en el
mensajenews:



> Hola amigos, tengo una consulta que usa LEFT OUTER JOIN y por mas que
> lo intento no me devuelve todas las columnas de la primera tabla como
> deberia, estoy colocando la sintaxis correctamente pero no me devuelve
> bien los resultados.

> Select Clientes.*, Pagos.* from Clientes
> LEFT OUTER JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli

> Tengo que configurar algo a nivel del servidor SQL para que la
> consulta funcione correctamente ?

> Gracias mil por anticipado (^_^).- Ocultar texto de la cita -

- Mostrar texto de la cita -



ok gracias pienso igual que uds. con referencia a que el SQL SERVER
deberia hacerlo sin pensar. Pero aunque no lo crean es lo que está
pasando. Como les comenté la unica manera en que pude hacer LEFT JOIN
fué con los modificadores *= y colocando la compatibilidad en 80.
Suena a la Dimension Desconocida verdad ?. ;D
Respuesta Responder a este mensaje
#7 Firefox
14/07/2008 - 02:44 | Informe spam
On 13 jul, 13:21, "Jhonny Vargas P."
wrote:
Hola,

Porque no mandas las estructuras de las tablas y algunos datos de pruebas
(como te lo solicitó Maxi)... para chequear que está ocurriendo.

De todas maneras nunca he utilizado OUTER, intenta colocar solo LEFT JOIN.

Saludos,
Jhonny Vargas P.

"Firefox" escribió en el mensaje de
noticias:

> On 13 jul, 05:03, "Jesús López"
> wrote:
>> No hay nada que configurar... LEFT OUTER JOIN siempre ha funcionado
>> correctamente, es muy, pero que muy raro que no funcione. Lo más probable
>> es
>> que estés haciendo algo que no nos estás contando. No tendrás una
>> cláusula
>> WHERE con una condición sobre campos de Pagos ¿verdad?

>> Saludos:

>> Jesús Lópezwww.solidq.com

>> "Firefox" escribió en el
>> mensajenews:

>> > Hola amigos, tengo una consulta que usa LEFT OUTER JOIN y por mas que
>> > lo intento no me devuelve todas las columnas de la primera tabla como
>> > deberia, estoy colocando la sintaxis correctamente pero no me devuelve
>> > bien los resultados.

>> > Select Clientes.*, Pagos.* from Clientes
>> > LEFT OUTER JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli

>> > Tengo que configurar algo a nivel del servidor SQL para que la
>> > consulta funcione correctamente ?

>> > Gracias mil por anticipado (^_^).- Ocultar texto de la cita -

>> - Mostrar texto de la cita -

> ok gracias pienso igual que uds. con referencia a que el SQL SERVER
> deberia hacerlo sin pensar. Pero aunque no lo crean es lo que está
> pasando. Como les comenté la unica manera en que pude hacer LEFT JOIN
> fué con los modificadores *= y colocando la compatibilidad en 80.
> Suena a la Dimension Desconocida verdad ?. ;D





Listo, disculpen las molestias el filtro estaba en el Where. No
volvera a ocurrir. :D
Respuesta Responder a este mensaje
#8 Firefox
14/07/2008 - 03:03 | Informe spam
On 13 jul, 13:21, "Jhonny Vargas P."
wrote:
Hola,

Porque no mandas las estructuras de las tablas y algunos datos de pruebas
(como te lo solicitó Maxi)... para chequear que está ocurriendo.

De todas maneras nunca he utilizado OUTER, intenta colocar solo LEFT JOIN.

Saludos,
Jhonny Vargas P.

"Firefox" escribió en el mensaje de
noticias:

> On 13 jul, 05:03, "Jesús López"
> wrote:
>> No hay nada que configurar... LEFT OUTER JOIN siempre ha funcionado
>> correctamente, es muy, pero que muy raro que no funcione. Lo más probable
>> es
>> que estés haciendo algo que no nos estás contando. No tendrás una
>> cláusula
>> WHERE con una condición sobre campos de Pagos ¿verdad?

>> Saludos:

>> Jesús Lópezwww.solidq.com

>> "Firefox" escribió en el
>> mensajenews:

>> > Hola amigos, tengo una consulta que usa LEFT OUTER JOIN y por mas que
>> > lo intento no me devuelve todas las columnas de la primera tabla como
>> > deberia, estoy colocando la sintaxis correctamente pero no me devuelve
>> > bien los resultados.

>> > Select Clientes.*, Pagos.* from Clientes
>> > LEFT OUTER JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli

>> > Tengo que configurar algo a nivel del servidor SQL para que la
>> > consulta funcione correctamente ?

>> > Gracias mil por anticipado (^_^).- Ocultar texto de la cita -

>> - Mostrar texto de la cita -

> ok gracias pienso igual que uds. con referencia a que el SQL SERVER
> deberia hacerlo sin pensar. Pero aunque no lo crean es lo que está
> pasando. Como les comenté la unica manera en que pude hacer LEFT JOIN
> fué con los modificadores *= y colocando la compatibilidad en 80.
> Suena a la Dimension Desconocida verdad ?. ;D





Select Clientes.*, Pagos.* from Clientes
LEFT JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli
where isnull(Pago.fecha,getdate()) between '20080713' and '20080713'

Ok. en vez de darme todos los clientes y colocar NULL en aquellos
clientes que no tienen registrado el pago para la fecha en cuestion,
simplemente muestra aquellos registros donde hay un pago con la fecha.
Como se puede solventar esto. Gracias.
Respuesta Responder a este mensaje
#9 Maxi Accotto
14/07/2008 - 03:38 | Informe spam
ahh ya me parecia, ahora la proxima por favor cuentanos todo asi te podemos
ayudar mejor :)


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"Firefox" escribió en el mensaje de
noticias:
On 13 jul, 13:21, "Jhonny Vargas P."
wrote:
Hola,

Porque no mandas las estructuras de las tablas y algunos datos de pruebas
(como te lo solicitó Maxi)... para chequear que está ocurriendo.

De todas maneras nunca he utilizado OUTER, intenta colocar solo LEFT
JOIN.

Saludos,
Jhonny Vargas P.

"Firefox" escribió en el mensaje de
noticias:

> On 13 jul, 05:03, "Jesús López"
> wrote:
>> No hay nada que configurar... LEFT OUTER JOIN siempre ha funcionado
>> correctamente, es muy, pero que muy raro que no funcione. Lo más
>> probable
>> es
>> que estés haciendo algo que no nos estás contando. No tendrás una
>> cláusula
>> WHERE con una condición sobre campos de Pagos ¿verdad?

>> Saludos:

>> Jesús Lópezwww.solidq.com

>> "Firefox" escribió en el
>> mensajenews:

>> > Hola amigos, tengo una consulta que usa LEFT OUTER JOIN y por mas
>> > que
>> > lo intento no me devuelve todas las columnas de la primera tabla
>> > como
>> > deberia, estoy colocando la sintaxis correctamente pero no me
>> > devuelve
>> > bien los resultados.

>> > Select Clientes.*, Pagos.* from Clientes
>> > LEFT OUTER JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli

>> > Tengo que configurar algo a nivel del servidor SQL para que la
>> > consulta funcione correctamente ?

>> > Gracias mil por anticipado (^_^).- Ocultar texto de la cita -

>> - Mostrar texto de la cita -

> ok gracias pienso igual que uds. con referencia a que el SQL SERVER
> deberia hacerlo sin pensar. Pero aunque no lo crean es lo que está
> pasando. Como les comenté la unica manera en que pude hacer LEFT JOIN
> fué con los modificadores *= y colocando la compatibilidad en 80.
> Suena a la Dimension Desconocida verdad ?. ;D





Select Clientes.*, Pagos.* from Clientes
LEFT JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli
where isnull(Pago.fecha,getdate()) between '20080713' and '20080713'

Ok. en vez de darme todos los clientes y colocar NULL en aquellos
clientes que no tienen registrado el pago para la fecha en cuestion,
simplemente muestra aquellos registros donde hay un pago con la fecha.
Como se puede solventar esto. Gracias.

Respuesta Responder a este mensaje
#10 Firefox
14/07/2008 - 16:44 | Informe spam
On 13 jul, 21:38, "Maxi Accotto"
wrote:
ahh ya me parecia, ahora la proxima por favor cuentanos todo asi te podemos
ayudar mejor :)


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"Firefox" escribió en el mensaje de
noticias:

> On 13 jul, 13:21, "Jhonny Vargas P."
> wrote:
>> Hola,

>> Porque no mandas las estructuras de las tablas y algunos datos de pruebas
>> (como te lo solicitó Maxi)... para chequear que está ocurriendo.

>> De todas maneras nunca he utilizado OUTER, intenta colocar solo LEFT
>> JOIN.

>> Saludos,
>> Jhonny Vargas P.

>> "Firefox" escribió en el mensaje de
>> noticias:

>> > On 13 jul, 05:03, "Jesús López"
>> > wrote:
>> >> No hay nada que configurar... LEFT OUTER JOIN siempre ha funcionado
>> >> correctamente, es muy, pero que muy raro que no funcione. Lo más
>> >> probable
>> >> es
>> >> que estés haciendo algo que no nos estás contando. No tendrás una
>> >> cláusula
>> >> WHERE con una condición sobre campos de Pagos ¿verdad?

>> >> Saludos:

>> >> Jesús Lópezwww.solidq.com

>> >> "Firefox" escribió en el
>> >> mensajenews:

>> >> > Hola amigos, tengo una consulta que usa LEFT OUTER JOIN y por mas
>> >> > que
>> >> > lo intento no me devuelve todas las columnas de la primera tabla
>> >> > como
>> >> > deberia, estoy colocando la sintaxis correctamente pero no me
>> >> > devuelve
>> >> > bien los resultados.

>> >> > Select Clientes.*, Pagos.* from Clientes
>> >> > LEFT OUTER JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli

>> >> > Tengo que configurar algo a nivel del servidor SQL para que la
>> >> > consulta funcione correctamente ?

>> >> > Gracias mil por anticipado (^_^).- Ocultar texto de la cita -

>> >> - Mostrar texto de la cita -

>> > ok gracias pienso igual que uds. con referencia a que el SQL SERVER
>> > deberia hacerlo sin pensar. Pero aunque no lo crean es lo que está
>> > pasando. Como les comenté la unica manera en que pude hacer LEFT JOIN
>> > fué con los modificadores *= y colocando la compatibilidad en 80.
>> > Suena a la Dimension Desconocida verdad ?. ;D

> Select Clientes.*, Pagos.* from Clientes
> LEFT JOIN Pagos On Clientes.codigo_cli = Pagos.codigo_cli
> where  isnull(Pago.fecha,getdate()) between '20080713' and '20080713'

> Ok. en vez de darme todos los clientes y colocar NULL en aquellos
> clientes que no tienen registrado el pago para la fecha en cuestion,
> simplemente muestra aquellos registros donde hay un pago con la fecha.
> Como se puede solventar esto. Gracias.





Bueno consegui lo que buscaba :D. Si alguien tiene una duda similar
esta pagina los puede sacar de aprietos ->
http://www.sqlteam.com/article/addi...oin-clause

esta consulta no arroja los resultados como uno esperaria (ejemplo de
la pagina) :

SELECT T.title_id, T.title, S.qty
FROM titles T
LEFT JOIN sales S on
T.title_id = S.title_id
WHERE S.stor_id = '7131'
ORDER BY T.title


pero esta si :


SELECT T.title_id, T.title, S.qty
FROM titles T
LEFT JOIN sales S on
T.title_id = S.title_id
AND S.stor_id = '7131'
ORDER BY T.title

El truco esta en colocar los criterios en el join y no en el where.
Asi te mostrara todos los registros de la primera tabla. ;D
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida