MS SQL: используйте вычисленное значение для вычисления других значений
-
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