Hoffentlich sollte der Code unten zeigen, was ich versuche zu erreichen.Aggregatfunktion führt zu Select-Anweisung
Das Problem ist, dass keiner der Eingabe wählt bis zu dem Zeitpunkt VatableCash
berechnet werden, so bekomme ich "ungültige Spalte", wenn Sie versuchen, es auszuwählen.
Entschuldigung, wenn es etwas offensichtlich ist, kann ich hier tun. SQL ist nicht einer meiner starken Anzüge.
select
OrderHeader.ID,
sum(OrderLine.NetPrice) as OrderLineNetPrice,
sum(OrderLine.GrossPrice) as OrderLineGrossPrice,
sum(
case when PaymentOption_ID = 8
then Payment.Amount
else 0
end
) as TotalCashAmount,
((OrderLineGrossPrice - OrderLineNetPrice)/OrderLineGrossPrice) * TotalCashAmount as VatableCash
from OrderHeader
inner join Payment on Payment.OrderHeader_ID = OrderHeader.ID
inner join OrderLine on OrderLine.OrderHeader_ID = OrderHeader.ID
group by OrderHeader.ID
Sie könnten die Berechnungen für orderlinenetprice, orderlinegrossprice und totalcashamount wiederholen, wenn vatable Bargeld Berechnung der Berechnung der vatable bar zu einer äußeren Abfrage verschieben oder einen CTE verwenden (die in der Tat ist die gleiche Sache). –