Ayuda con Select

12/01/2005 - 17:27 por Carlos | Informe spam
Cordial Saludo.
Tengo el siguiente select:

select art.*,sec.SecNombre,dep.DepNombre from Articulo art,
Seccion sec,Departamento dep WHERE sec.SecNombre LIKE 'botiquin%' and
art.ArtSeccion=sec.SecCodigo and sec.SecDepaCodi=dep.DepCodigo

Me sale bien, con 304 Registros, pero ahora debo relacionar otra tabla
llamada Lineas y en la tabla articulos tiene un solo registro asociado a
Lineas

select art.*,sec.SecNombre,dep.DepNombre,lin.LineaNombre from Articulo
art,Seccion sec,Departamento dep,Lineas lin WHERE sec.SecNombre LIKE
'botiquin%' and art.ArtSeccion=sec.SecCodigo and
sec.SecDepaCodi=dep.DepCodigo and
art.ArtCodiLinea=lin.LineaCodigo

Agregandole la tabla Lineas al select anterior me sale un solo registro.

Necesito esto para poner todos los datos en una grilla de Visual basic 6

Alguien puede ayudarme a hacer ese select??

Agradezco la ayuda y sugerencias que me puedan brindar.
 

Leer las respuestas

#1 Manuel Vera
12/01/2005 - 18:45 | Informe spam
Debes hacer un LEFT JOIN o RIGHT JOIN que no es mas que forzar los registros
de uno u otro lado para que aparescan en el resultado.

Prueba con:

SELECT art.*,sec.SecNombre,dep.DepNombre,lin.LineaNombre
FROM Articulo art,Seccion sec,Departamento dep,Lineas lin
WHERE sec.SecNombre LIKE 'botiquin%'
and art.ArtSeccion=sec.SecCodigo
and sec.SecDepaCodi=dep.DepCodigo
and art.ArtCodiLinea*=lin.LineaCodigo

Aqui en la ultima linea, el operador *= es un LEFT JOIN que obliga a mostrar
TODOS los registros de ART y solo aquellos que coincidan en LIN.
En VB es posible que tengas problemas al cargar los datos, pues LineaNombre
será NULL cuando no existe el regitro. Para solucionarlo has esto otro:

SELECT art.*,sec.SecNombre,dep.DepNombre, ISNULL( lin.LineaNombre , '' ) AS
LineaNombre

Salu2
MV


"Carlos" wrote in message
news:
Cordial Saludo.
Tengo el siguiente select:

select art.*,sec.SecNombre,dep.DepNombre from Articulo art,
Seccion sec,Departamento dep WHERE sec.SecNombre LIKE 'botiquin%' and
art.ArtSeccion=sec.SecCodigo and sec.SecDepaCodi=dep.DepCodigo

Me sale bien, con 304 Registros, pero ahora debo relacionar otra tabla
llamada Lineas y en la tabla articulos tiene un solo registro asociado a
Lineas

select art.*,sec.SecNombre,dep.DepNombre,lin.LineaNombre from Articulo
art,Seccion sec,Departamento dep,Lineas lin WHERE sec.SecNombre LIKE
'botiquin%' and art.ArtSeccion=sec.SecCodigo and
sec.SecDepaCodi=dep.DepCodigo and
art.ArtCodiLinea=lin.LineaCodigo

Agregandole la tabla Lineas al select anterior me sale un solo registro.

Necesito esto para poner todos los datos en una grilla de Visual basic 6

Alguien puede ayudarme a hacer ese select??

Agradezco la ayuda y sugerencias que me puedan brindar.

Preguntas similares