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.

Preguntas similare

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:
Mostrar la cita
#2 ulises
12/01/2005 - 19:10 | Informe spam
Es preferible usar la indicación de JOIN en el FROM que en
el WHERE, en primer lugar porque los outer join podrían dar
resultados diferentes al esperado y en segundo lugar porque
los operadores *= ó =* solo se mantienen por
compatibilidad y podrían no estar en futuras versiones de
SQL Server.

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

Saludos,
Ulises

Mostrar la cita
forzar los registros
Mostrar la cita
que obliga a mostrar
Mostrar la cita
en LIN.
Mostrar la cita
pues LineaNombre
Mostrar la cita
has esto otro:
Mostrar la cita
lin.LineaNombre , '' ) AS
Mostrar la cita
'botiquin%' and
Mostrar la cita
sec.SecDepaCodi=dep.DepCodigo
Mostrar la cita
relacionar otra tabla
Mostrar la cita
registro asociado a
Mostrar la cita
from Articulo
Mostrar la cita
sec.SecNombre LIKE
Mostrar la cita
un solo registro.
Mostrar la cita
de Visual basic 6
Mostrar la cita
Ads by Google
Search Busqueda sugerida