Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/10/2007, 17:45
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
De acuerdo Re: Cómo formar un WHERE DINAMICO

Código:
select *
FROM 	dbo.Cmp_LiqImp AS li 
INNER JOIN 
	dbo.Cmp_LiqImpFactura AS lif 
ON      (Falta condiciones de union)
INNER JOIN 
	dbo.Cmp_Compra AS detcom ON   
	1 = (Case When @PI_IdCriterio is null Then 1 
              Else
                 case @PI_IdCriterio  
  		      when 1 then Case When li.IdLiqImp = CAST(@PI_Criterio AS INT) Then 1 Else 0 End --// #Liquid
		      when 2 then Case When detcom.GuiaRemision = @PI_Criterio      Then 1 Else 0 End --// #Guia
		      when 3 then Case When li.IdOC = @PI_Criterio                  Then 1 Else 0 End --// #OC
	         End
	      End 
	   )
Where li.IdEmpresa=@PI_IdEmpresa  And
      li.IdOficina=@PI_IdOficina
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!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.