Поиск
Архивы
Админ
Использование подзапросов с UPDATE sql
UPDATE использует подзапросы тем же самым способом, что и DELETE — внутри этого необязательного предиката. Вы можете использовать соотнесенные подзапросы или в форме пригодной для использования с DELETE — связанной или с модифицируемой таблицей или с таблицей, вызываемой во внешнем запросе. Например, с помощью соотнесенного подзапроса к таблице, которая будет модифицироваться, вы можете увеличить комиссионные всех продавцов которые были назначены по крайней мере двум заказчикам:
UPDATE Salespeople
SET comm = comm + .01
WHERE 2 <= (SELECT COUNT (cnum)
FROM Customers
WHERE Customers.snum = Salespeople.snum);
Теперь продавцы Peel и Serres, имеющие многочисленных заказчиков, получат повышение своих комиссионных.
Имеется разновидность последнего примера из предыдущего раздела с DELETE. Он уменьшает комиссионные продавцов, которые произвели наименьшие Заказы, но не стирает их в таблице:
UPDATE salespeople
SET comm = comm - .01
WHERE snum IN (SELECT snum
FROM Orders a
WHERE amt = (SELECT MIN (amt)
FROM Orders b
WHERE a.odate = b.odate));
Популярность: 5%

