2017-04-06 7 views
0

$ 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; 

私は取得していますエラーが

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

私はエラーが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句の配置に問題がありました。

関連する問題