我需要一些帮助来找到此代码中的错误。 我可以在哪里过滤结果?
SELECT OrderID, sum(UnitPrice * Quantity) as Total
FROM [Order Details]
WHERE Total > 10
答案 0 :(得分:2)
由于使用聚合函数SUM,因此需要对OrderId进行GROUP BY。
然后您可以在HAVING子句中过滤聚合函数的结果。
另一方面,对OrderId的过滤将在WHERE子句中完成。但是根据数据库的类型,不允许在HAVING子句中使用别名(例如Total)。
因此,在标准SQL中,它将变成这样:
SELECT OrderID, SUM(UnitPrice * Quantity) as Total
FROM "Order Details"
GROUP BY OrderID
HAVING SUM(UnitPrice * Quantity) > 10