如果他们有超过250美元的2个订单,我正在尝试增加客户信用额度。
我的代码是
UPDATE Customers SET CreditLimit = (CreditLimit * .25) WHERE Amount IN (SELECT CustNum, Cust, Amount
FROM Orders
INNER JOIN Customers ON Orders.Cust = Customers.CustNum
WHERE Amount > 250)
AND Count(Amount) > 1;
我得到的错误是
错误报告 - SQL错误:ORA-00934:不允许组功能 这里 00934. 00000 - "此处不允许使用群组功能" *原因:
*操作:
我理解错误来自COUNT但不确定我应该使用什么。任何帮助,将不胜感激。
答案 0 :(得分:0)
如果您希望增加具有多个订单的客户的信用额度,该订单的值大于250,那么您需要以下内容:
UPDATE Customers c
SET CreditLimit = (CreditLimit * 0.25)
WHERE (CustNum, Amount) IN (SELECT o.Cust, o.Amount
FROM Orders o
WHERE Amount > 250
GROUP BY o.Cust
HAVING Count(o.Amount) > 1
);
Oracle不支持FROM
中的UPDATE
子句。您还遇到了IN
列表和HAVING
子句的位置问题。