В операторе update
нет предложения from
, как вы указали.
Вы пытаетесь сделать что-то вроде этого: Увеличьте кредитный лимит на 25% для клиентов, у которых есть хотя бы 2заказы на более чем 250 денег .
update Customers
set CreditLimit = CreditLimit * 1.25
where (select count(*)
from Orders
where Amount > 250
and orders.customer_id = Customers.customer_id)) >= 2;
Edit
Я только что заметил, что вы используете Oracle (сообщение ORA).Поскольку вы потенциально обновляете всех клиентов, я считаю, что наиболее эффективный способ - использовать «обновляемое соединение» или оператор слияния, как показано ниже:
merge
into customers
using (select customer_id
from Orders o
where amount > 250
group
by customer_id
having count(*) >= 2
) orders
on(customers.customer_id = orders.customer_id)
when matched then
update
set customers.creditlimit = customers.creditlimit * 1.25;