Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Left join con MsSQL

Estas en el tema de Left join con MsSQL en el foro de Bases de Datos General en Foros del Web. Hola a todos amigos foreros. tengo un problema al unir 2 tablas en MsSQL2000. Tomando como ejemplo la BD pubs SELECT a.au_fname, a.au_lname, p.pub_name FROM ...
  #1 (permalink)  
Antiguo 30/01/2005, 21:47
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 3 meses
Puntos: 1
Left join con MsSQL

Hola a todos amigos foreros.

tengo un problema al unir 2 tablas en MsSQL2000. Tomando como ejemplo la BD pubs

SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors a LEFT OUTER JOIN publishers p
ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC

Da como resultado


Reginald - Blotchet-Halls - NULL
Michel - DeFrance - NULL
Innes - del Castillo - NULL
. - . - .
. - . - .
Dirk - Stringer - NULL
Johnson - White - NULL
Akiko - Yokomoto - NULL
Abraham - Bennet - Algodata Infosystems
Cheryl - Carson - Algodata Infosystems

Pero si ademas quiero agegar un condicional del lado de authors como lo hago? Digamos quiero ver solo a Innes .. hago lo siguiente me bota error (Invalid column name 'Ann'):

SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors a LEFT OUTER JOIN publishers p
ON a.city = p.city
WHERE a.au_fname = "Innes"
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC

Tonces? al hacer un LEFT OUTER JOIN como le hago si deseo realizar un condicional sobre algun campo?


Lez agradezco su colaboración y éxitos en sus proyectos.
  #2 (permalink)  
Antiguo 30/01/2005, 23:32
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
utiliza suconsultas

las subconsultas te ayudan a resolver ese problema mejor, los join dan para equivocaciones y resultados erroneos
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #3 (permalink)  
Antiguo 31/01/2005, 09:50
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Si escribes la consulta tal y como la tenías arriba probablemente dirá que la columna desconocida es Innes

Prueba a cambiar las comillas dobles por simples

Un saludo
  #4 (permalink)  
Antiguo 31/01/2005, 17:31
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 19 años, 11 meses
Puntos: 4
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a LEFT OUTER JOIN publishers AS p
ON a.city = p.city
WHERE a.au_fname = 'Innes'
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC

No sabría decirte exáctamente la solución porque no estoy muy seguro , pero te pongo un par de ejemplo que funcionan para que te fijes.

Código:
select oficinas.Oficina,Oficinas.Ciudad,Empleados.Nombre,Empleados.Numemp
from Oficinas Left Join Empleados
on Oficinas.Oficina=Empleados.Oficina 
where Oficinas.Region='este' and numemp is null

select Oficinas.Oficina,Empleados.nombre,Oficinas.Objetivo
from oficinas left join empleados
on empleados.numemp=Oficinas.Dir 
where  oficinas.objetivo>600000
  #5 (permalink)  
Antiguo 31/01/2005, 19:36
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 19 años, 11 meses
Puntos: 0
Si si... son las comillas dobles. Reemplazá las " por '.
__________________
Saludos,

Alejandro. :adios:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:50.