Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2007, 13:55
Avatar de LUISESPOCH
LUISESPOCH
 
Fecha de Ingreso: octubre-2006
Mensajes: 194
Antigüedad: 17 años, 7 meses
Puntos: 0
Cómo formar un WHERE DINAMICO

Hola amigos,...
tengo problemas cuando trato de formar un WHERE dinamico

select *
FROM
dbo.Cmp_LiqImp AS li INNER JOIN dbo.Cmp_LiqImpFactura AS lif
INNER JOIN dbo.Cmp_Compra AS com ON
and li.IdEmpresa=@PI_IdEmpresa
and li.IdOficina=@PI_IdOficina
and (

(case @PI_IdCriterio
when 1 then li.IdLiqImp=CAST(@PI_Criterio AS INT) --// #Liquid
when 2 then detcom.GuiaRemision=@PI_Criterio --// #Guia
when 3 then li.IdOC=@PI_Criterio --// #OC
)

or

@PI_Criterio is null)
donde

@PI_IdCriterio puede tomar valor de
1= si se quiere comparar con una columna tipo NUMERICO ENTERO
2= si se quiere comparar con una columna tipo STRING
3= si se quiere comparar con una columna tipo NUMERICO ENTERO

ME SALE ERROR DE SINTAXIS, alguien me puede por favor ayudar??

Gracias.

Luis