Sip esta sencillo tu problema, porque no creas un query dinamico y nada mas le mandas como parametro el campo que cambia:
Código SQL:
Ver originalCREATE Proc P5rAdvBitAutor
(
@Vendedor utClave,
@Folio utFolio,
@tipo VARCHAR(20)
)
AS
SET nocount ON
DECLARE @query VARCHAR(MAX)
SET @query='SELECT C.razonsocial, O.Folio, O.Cliente, A.Fecha, O.UsuarioCaptura, O.Documento,O.Vendedor,O.TotalImporte,O.TotalDescuento,O.TotalImpuesto,O.TotalRetencion,O.Total,A.Autorizacion, PA.Autorizado, A.Usuario, sum((od.cantidad*ar. + ' @tipo '+)-(od.totalimpor
te)) AS Descu, O.cliente, c.clientetipo
FROM OrdVtaEncabezado AS O, cliente AS C, OrdVtaAutorizacion AS A,P5SysAutorizacion AS PA,ordvtadetalle AS od, articulo AS ar
WHERE O.Empresa = ''Emp1'' AND C.clave = O.Cliente AND O.Operacion=PA.Operacion AND O.Folio=PA.Folio AND PA.Autorizado=''S'' AND O.Vendedor=@Vendedor AND O.Folio=@Folio
AND O.Operacion=''ORDVTA'' AND O.Folio=A.FOlio AND PA.Operacion=''ORDVTA'' AND od.articulo=ar.clave AND od.folio=O.folio AND O.cliente=c.clave
GROUP BY O.cliente, c.clientetipo,C.razonsocial, O.Folio, O.Cliente, A.Fecha, O.UsuarioCaptura, O.Documento,O.Vendedor,O.TotalImporte,O.TotalDescuento,O.TotalImpuesto,O.TotalRetencion,O.Total,A.Autorizacion, PA.Autorizado, A.Usuario
ORDER BY O.Folio DESC, A.Fecha DESC
'
EXEC @query
Donde tipo es lo que pones como od.cantidad*ar.numero1, ar.numero2 etc, aqui lo que pondrias seria numero1 o numero 2.....