Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/05/2015, 11:15
ferdan_2193
 
Fecha de Ingreso: julio-2011
Mensajes: 14
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Condicional nula en caso de ...

Buend ía espero me puedan apoyar, estoy trabajando con sql anywhere realmente no encuentro ayuda en ningún lado y tengo 2 días trabajando con este pedazo de código.

Código MySQL:
Ver original
  1. ALTER PROCEDURE "comercia"."CotizBus_stabCotizaciones"(@siEmpresa smallint, @siAlmacen smallint
  2. ,@biFolio bit,  @inFolio integer , @biCliente bit, @inCliente integer  
  3. ,@biOficina bit, @siOficina smallint , @biVendedor bit, @inVendedor integer
  4. , @biFecha bit, @sdFechaIni smalldatetime,@sdFechaFin smalldatetime, @tiNivelCliente tinyint, @inUsuario integer)
  5.     declare @vcQuery long varchar;
  6.     declare @vcFechaIni varchar(20);
  7.     declare @vcFechaFin varchar(20);
  8.     declare @Prepedido integer
  9.     set @vcFechaIni=''''+convert(varchar(20),dateformat(@sdFechaIni,'yyyy/mm/dd hh:mm'))+'''';
  10.     set @vcFechaFin=''''+convert(varchar(20),dateformat(@sdFechaFin,'yyyy/mm/dd hh:mm'))+'''';
  11.        
  12.     set @vcQuery=' SELECT Cotizacion=t1.inCotLlave , Fecha=DATEFORMAT(t1.sdCotFecha,''dd/mm/yyyy'') ';
  13.     set @vcQuery=@vcQuery+' ,Cliente=t1.inCliLlave,Nombre=t2.vcCliNombre, Nivel=t4.vcNicClave,Cuenta=t3.chUsuCuenta,Pedido=t1.inPedLlave,Cancelado=convert(integer,t1.biCotCancelado),Almacen=t1.siAlmLlave, Prepedido (isnull(t8.inCotLlave,0))';
  14.     set @vcQuery=@vcQuery+' FROM tabCotizaciones t1,catClientes t2,catUsuarios t3, catNivelesClientes t4, tabPrepedidos t8';
  15.     set @vcQuery=@vcQuery+' WHERE t1.siAlmLlave = ' + convert(varchar(10),@siAlmacen);
  16.     set @vcQuery=@vcQuery+' AND t4.siEmpLlave = ' + convert(varchar(10),@siEmpresa);
  17.     set @vcQuery=@vcQuery+' AND t3.inUsuLlave = t1.inUsuLlave ';
  18.     set @vcQuery=@vcQuery+' AND t2.inCliLlave = t1.inCliLlave ';
  19.     set @vcQuery=@vcQuery+' AND t2.siNicLlave = t4.siNicLlave ';
  20.    
  21.     if @biFolio > 0 then
  22.         set @vcQuery=@vcQuery+' AND t1.inCotLlave = '+convert(varchar(10),@inFolio)
  23.     end if;
  24.     if @biOficina > 0 then
  25.         set @vcQuery=@vcQuery+' AND t3.siOfiLlave = '+convert(varchar(10),@siOficina)
  26.     end if;
  27.     if @biCliente > 0 then
  28.         set @vcQuery=@vcQuery+' AND t1.inCliLlave = '+convert(varchar(10),@inCliente)
  29.     end if;
  30.     if @biVendedor > 0 then
  31.         set @vcQuery=@vcQuery+' AND t3.inUsuLlave = '+convert(varchar(10),@inVendedor) 
  32.     end if;
  33.     if @biFecha > 0 then
  34.         --Significa que Voy a Buscar por Fecha.        
  35.         set @vcQuery=@vcQuery+' AND t1.sdCotFecha BETWEEN '+@vcFechaIni+' AND '+@vcFechaFin
  36.     end if;
  37.     if @tiNivelCliente > 0 then
  38.         set @vcQuery=@vcQuery+' AND t2.siNicLlave  = '+convert(varchar(10),@tiNivelCliente)
  39.     end if;
  40.         set @vcQuery=@vcQuery+' AND t1.inCotLlave = ISNULL(t8.inCotLlave,t1.inCotLlave)';--------------------------------------------------En esta línea quiero que salga el mismo de la tabla 8 pero si no existe el registro me lo ponga igual, esto para que no desaparezca ninguna busqueda, ya tenía ese código hecho y sé que si se puede pero no se donde quedó y no se usar joins.
  41.     set @vcQuery=@vcQuery+' ORDER BY t1.inCotLlave';
  42.    
  43.     execute immediate with result set on @vcQuery;


Gracias espero puedan ayudarme

Última edición por gnzsoloyo; 08/05/2015 a las 11:31