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
aunque seria mejor que enviaras tal cual los parametros de cada tabla, ya que eso de tener un solo parametro y un identificador para saber a que tabla va a filtar hace las cosas mas confunsas y propensas a errores....
Saludos! 
