SQL,接收错误

时间:2013-10-03 09:10:36

标签: sql error-handling

我被问到以下问题:

显示总金额小于或等于25美元的所有订单的订单号和订单总金额。

我正在尝试执行以下操作,但收到错误消息:

SELECT orderNumber, SUM(orderPrice * orderQuantity) AS orderTotal
FROM OrderProduct
WHERE (orderTotal < 25) OR (orderTotal = 25) 
GROUP BY orderNumber 

我收到了一条错误消息,显然我做错了。 有什么建议?

3 个答案:

答案 0 :(得分:3)

乍一看,我认为你必须使用HAVING SUM(orderPrice * orderQuantity) <= 25而不是WHERE条件。

所以,你的查询应该是这样的:

SELECT orderNumber, SUM(orderPrice * orderQuantity) AS orderTotal
FROM OrderProduct
GROUP BY orderNumber
HAVING SUM(orderPrice * orderQuantity) <= 25

答案 1 :(得分:0)

您必须在分组依据中使用 having 子句来检查 aggregate function

上的任何条件
SELECT orderNumber, SUM(orderPrice * orderQuantity) AS orderTotal
FROM OrderProduct
GROUP BY orderNumber 
having orderTotal <= 25

答案 2 :(得分:0)

使用这个:

SELECT orderNumber, SUM(orderPrice * orderQuantity) AS orderTotal
  FROM OrderProduct
 GROUP BY orderNumber 
HAVING orderTotal <= 25;

查看this Fiddle

在ORACLE数据库上使用Radu Gheorghiu's版本。