希望下面的代码应该证明我想要实现的。汇总函数结果在选择语句
问题是,当我尝试计算VatableCash
时,没有任何输入选择被解决,所以当我尝试选择它时出现“无效列”。
对不起,如果有明显的事情我可以在这里做。 SQL不是我的强项之一。
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
计算vatable现金时,你可以重复用于orderlinenetprice,orderlinegrossprice和totalcashamount计算,移动的vatable现金计算外查询,或者使用一个CTE(这实际上是一回事)。 –