Здравствуйте. Есть задача: Уменьшите на 20% количество очков у лучшей на данный момент команды лиги.
Есть запрос:
UPDATE Bout SET Point = (Point*20) DIV 100 WHERE Participant = (SELECT Participant
FROM Participant
WHERE Name = (
SELECT M.Name
FROM (
SELECT G.name, Sred
FROM (
SELECT Participant.Name, SUM( POINT ) AS Sred
FROM Bout
INNER JOIN Participant ON Participant.participant = Bout.participant
GROUP BY Participant.Name ) AS G
WHERE Sred = (
SELECT MAX( T.Sred )
FROM (
SELECT Participant.Name, SUM( POINT ) AS Sred
FROM Bout
INNER JOIN Participant ON Participant.participant = Bout.participant
GROUP BY Participant.Name ) AS T
)
) AS M
))
Проблема в том, что подзапрос возвращает 3 записи, из-за чего UPDATE отказывается работать. Как можно преобразовать запрос на поочередное обновление, либо просто разбить выходное результат и сделать 3 разных запроса. Возможно ли упростить и модифицировать данный запрос? Спасибо.
Прикрепленные файлы:
basa.sql, Размер: 5,761 байт, Скачано: 588