我正在解决此SQL问题:集合函数SQL where问题
显示任何采购订单,其收取的金额和实际金额是不同的。通过显示采购订单号,每个采购订单的POAmount,实际金额(通过添加订单中所有项目的价格计算)以及两者之间的差异来显示。对结果进行排序以显示那些差异最大的结果。
错误代码为-1,SQL状态42903:无效的使用集合函数
运行下面的SQL语句时,我得到了下面的代码。
select
purchaseorder.ponum,
purchaseorder.amount,
sum(poitems.quantity*poitems.unitprice),
purchaseorder.amount-sum(poitems.quantity*poitems.unitprice)
from purchaseorder, poitems
where
purchaseorder.ponum = poitems.ponum
and purchaseorder.amount!=sum(poitems.quantity*poitems.unitprice)
group by
purchaseorder.ponum,
purchaseorder.amount
我认为这是因为我在我的where子句中使用聚合函数。
我该如何解决这个问题?
感谢,
是'amount'总是大于'actual'?否则你可能需要'按ABS(差异)排序'或类似的依赖于你的SQL风格 – tobyodavies 2010-11-04 04:04:12