АР
Аленка Руденок

Запрос в MS SQL Server 2008



Есть такая таблица. Нужно написать запрос, чтобы все студенты, у которых средний балл выше 6, были переведены в группу под номером 372301. Ну я и пишу:

update a set N_группы = 372301 from dbo.Студент as a inner join dbo.Экзамен as b on a.N_зачетки = b.N_зачетки where (select AVG(Оценка) from dbo.Экзамен group by dbo.Экзамен. N_зачетки) > 6;

На что среда выдает мне следующую ошибку:

Сообщение 512, уровень 16, состояние 1, строка 1
Вложенный запрос вернул больше одного значения. Это запрещено, когда вложенный запрос следует после =, !=, <, <=, >, >= или используется в качестве выражения.

Вопрос: можно ли это как-нибудь обойти, ведь мне по сути-то и надо, чтобы вложенный запрос возвращал более одного значения?

Владимир Виноградов
Владимир Виноградов

Если оценки бывают больше 5, то тогда так:

update dbo.Студент set N_группы = 372301
where N_зачетки in (
select N_зачетки from dbo.Экзамен group by dbo.Экзамен. N_зачетки having AVG(Оценка) > 6
);

Похожие вопросы
Проблема с ASP .NET и MS SQL Server
SQL Server Manager 2008 R2
Недопустимое имя объекта. SQL запрос к БД. MS VS 2008. C#.
SQL Server. Помогите ответить на вопрос SQL Server. Выборка данных из БД SQL Server 2008. Примеры
Ms sql server
Помогите реализовать связь. (ms sql-server 2008)
Ms sql server
PHP + MS SQL SERVER 2008 R2 + IIS
Зачем нужен ms sql server когда есть ms access? В чем различия? те же запросы и т. д
Помогите с Microsoft SQL Server 2008