MS SQL: используйте вычисленное значение для вычисления других значений

dba.stackexchange https://dba.stackexchange.com/questions/2309

  •  16-10-2019
  •  | 
  •  

Вопрос

У меня проблемы с созданием результатов, которые вычисляются из данных, которые существуют в базе данных. В этом случае

У меня есть купоны, которые могут быть суммы или процента, если процент равен 0, то используется сумма

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

Теперь я должен рассчитать процент для одного поставщика контента, который

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

Как я могу использовать расчет значения купона сверху, чтобы вычислять процент поставщика, если я использую его, так как в коде выше, сообщается «Имя неверного столбца» «Купон» ».

Пожалуйста, помогите мне, я знаю, как решить это по трудному способу, который рассчитывает стоимость купона каждый раз при расчете ProviderPercent, но у меня есть 8 таких перкажевых в одном отчете для разных поставщиков.

Таким образом, в основном вопрос заключается в том, как использовать вычисленное значение купона для использования его в других расчетах для той же записи. Купон изменяется в отношении продукта, поэтому я могу быть разным для каждой записи, выбранной из базы данных.

Это было полезно?

Решение

Не могли бы вы этого делать с Крест применить?

Другие советы

Это простое, вычисленное значение можно использовать путем применения.

Как это выберите CPK.Coupon, P.Price, P.Price-CPK.Coupon в качестве FinalPrice-и т. Д.

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top