Frage

Ich habe ein Problem damit, Ergebnisse zu generieren, die aus Daten in der Datenbank berechnet werden. Das ist der Fall

Ich habe Gutscheine, die Betrag oder Prozent sein können, wenn der Prozentsatz 0 ist, wird der Betrag verwendet

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

Jetzt muss ich Prozent für einen Inhaltsanbieter berechnen, der ist

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

Wie kann ich den Coupon -Wert von oben berechnen, um den Prozentsatz von Anbietern zu berechnen, wenn ich ihn wie im obigen Fehler verwende, wird angegeben "Ungültiger Spaltenname 'Coupon'".

Bitte helfen Sie mir, ich weiß, wie ich dies auf schwierige Weise beheben kann, nämlich bei der Berechnung der Anbieter, aber ich habe 8 Gewinne wie diesen in einem Bericht für verschiedene Anbieter.

Im Grunde genommen ist die Frage, wie der berechnete Gutscheinwert verwendet wird, um ihn in anderen Berechnungen für denselben Datensatz zu verwenden. Der Gutschein wird in Bezug auf das Produkt geändert, sodass ich für jeden aus der Datenbank ausgewählten Datensatz unterschiedlich sein kann.

War es hilfreich?

Lösung

Kannst du das nicht mit einem tun? Kreuzbewerb?

Andere Tipps

Es ist einfach, berechnungswert kann durch Anwenden verwendet werden, ist der Wert mit Kreuzanmeldung

Wie diese select cpk.coupon, P.Price, P.Price-cpk.coupon als FinalPrice-usw.

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top