2017-04-06 59 views
0

我想增加客戶的信用額度,如果他們有2個訂單250美元以上。如何避免羣組功能在這裏是不允許的

我的代碼是

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; 

我得到的錯誤是

Error report - SQL Error: ORA-00934: group function is not allowed here 00934. 00000 - "group function is not allowed here" *Cause:
*Action:

我理解錯誤從計來,但不知道我應該使用。任何幫助,將不勝感激。

+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子句中UPDATEIN列表和HAVING子句的位置也存在問題。