Pregunta

Tengo problemas para generar resultados que se calculan a partir de datos que existe en la base de datos. Este es el caso

Tengo cupones que pueden ser la cantidad o el porcentaje, si el porcentaje es 0, entonces se usa la cantidad

CASE 
  WHEN c.CouponPercent > 0 THEN p.Price - (c.CouponPercent/100)
  ELSE c.CouponValue
END as Coupon

Ahora tengo que calcular el porcentaje de un proveedor de contenido que es

(p.Price-Coupon)*(ProviderPercent/100)

¿Cómo puedo usar el valor del cupón de calcular desde arriba para calcular el porcentaje de proveedor, si lo uso como en el código anterior se informa que el error se informa "cupón" no válido de la columna "?

Por favor, ayúdame, sé cómo resolver esto de manera difícil, que es calcular el valor del cupón cada vez al calcular el porcentaje de proveedor, pero tengo 8 porcentajes como este en un informe para diferentes proveedores.

Básicamente, la pregunta es cómo usar el valor de cupón calculado para usarlo en otros cálculos para el mismo registro. El cupón se cambia con respecto al producto, por lo que puedo ser diferente para cada registro seleccionado de la base de datos.

¿Fue útil?

Solución

¿No puedes hacer esto con un Aplicar cruzado?

Otros consejos

Es simple, el valor calculado se puede usar mediante la aplicación es valor con la aplicación cruzada

Al igual que este selecto cpk.coupon, P.Price, P.Price-CPK.Coupon como FinalPrice-etc.

from Product -- etc
CROSS APPLY (
   select coupon = CASE 
  WHEN c.CouponPercent = 0 THEN p.Price - (c.CouponPercent/100)
  ELSE c.CouponValue
END as Coupon ) as cpk

where --etc
Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top