mejorar consulta o usar LEFT JOIN

27/07/2006 - 05:10 por Joel Medina Osis | Informe spam
tengo una aplicacion que usa el siguiente procedimiento almacenado:

create procedure SP_INGRESO_EMPRESA (@codingreso varchar(10))
select
ci.ch_cod_ingreso as codingreso,
ci.ch_cod_empresa as codempresa,
ci.ch_cod_usuario as codusuario,
ci.ch_cod_contacto_empresa as codcontactoempresa,
ci.vc_observaciones as observaciones,
ci.vd_fecha_ingreso as fechaingreso,
me.vc_nom_empresa as nomempresa,
mec.vc_nombre+char(32)+mec.vc_apellido as nomcontacto,
mu.vc_nombre+char(32)+mu.vc_apellido as nomusuario,
ci.ch_cod_vendedor as codvendedor
from cabingreso ci, maeempresas me, maeempresacontactos mec, maeusuarios mu,
maevendedores mv
where ci.ch_cod_empresa = me.ch_cod_empresa and
ci.ch_cod_contacto_empresa = mec.ch_cod_contacto_empresa and
ci.ch_cod_usuario = mu.ch_cod_usuario and
ci.ch_cod_ingreso = @codingreso and
ci.ch_cod_vendedor = mv.ch_cod_vendedor
go

el problema es que recientemente han importado datos a las tabla CabIngreso
en los cuales algunos campos estan en null entre ellos ch_cod_empresa,
ch_cod_vendedor, ch_cod_contacto_empresa por lo que si se busca algun
ingreso en los cuales uno de dichos campos este null el procedimiento
almacenado no va a arrojar nada, por lo que quisiera hacerlo con LEFT JOIN
pero son 5 tablas, se puede hacer? o alguna sugerencia?, normalmente el
sistema no permiti el ingreso de valores nulos en esos "campos obligatorios"
pero forzaron eso para importar entradas de otro local y ahora estoy con el
dichoso problema.

Saludos.

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
27/07/2006 - 09:01 | Informe spam
Hola,

Ningún problema, puedes hacer LEFT JOIN de esas tablas y mantener la JOIN
del resto.
Para ello tienes dos opciones, una es utilizar la antigua nomenclatura que
sólo se mantiene por compatibilidad con versiones anteriores y es comparar
en vez de con = con *= o *= para hacer left/right join.
La otra es cambiar la sintaxis utilizando las instrucciones LEFT JOIN o
RIGHT JOIN.
Te aconsejo que hagas lo último.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Joel Medina Osis" escribió en el mensaje
news:
tengo una aplicacion que usa el siguiente procedimiento almacenado:

create procedure SP_INGRESO_EMPRESA (@codingreso varchar(10))
select
ci.ch_cod_ingreso as codingreso,
ci.ch_cod_empresa as codempresa,
ci.ch_cod_usuario as codusuario,
ci.ch_cod_contacto_empresa as codcontactoempresa,
ci.vc_observaciones as observaciones,
ci.vd_fecha_ingreso as fechaingreso,
me.vc_nom_empresa as nomempresa,
mec.vc_nombre+char(32)+mec.vc_apellido as nomcontacto,
mu.vc_nombre+char(32)+mu.vc_apellido as nomusuario,
ci.ch_cod_vendedor as codvendedor
from cabingreso ci, maeempresas me, maeempresacontactos mec, maeusuarios
mu, maevendedores mv
where ci.ch_cod_empresa = me.ch_cod_empresa and
ci.ch_cod_contacto_empresa = mec.ch_cod_contacto_empresa and
ci.ch_cod_usuario = mu.ch_cod_usuario and
ci.ch_cod_ingreso = @codingreso and
ci.ch_cod_vendedor = mv.ch_cod_vendedor
go

el problema es que recientemente han importado datos a las tabla
CabIngreso en los cuales algunos campos estan en null entre ellos
ch_cod_empresa, ch_cod_vendedor, ch_cod_contacto_empresa por lo que si se
busca algun ingreso en los cuales uno de dichos campos este null el
procedimiento almacenado no va a arrojar nada, por lo que quisiera hacerlo
con LEFT JOIN pero son 5 tablas, se puede hacer? o alguna sugerencia?,
normalmente el sistema no permiti el ingreso de valores nulos en esos
"campos obligatorios" pero forzaron eso para importar entradas de otro
local y ahora estoy con el dichoso problema.

Saludos.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida