Hussien Ezzat Ответов: 1

Обновление столбца в подзапросе


У меня есть таблица одна называется категория и имеет 2 столбца тип и Numberofmovies а другая таблица называется Movtype имеет тип и movieID и я хочу обновить столбец Numberofmovies количество этих фильмов и это мой код но он дает мне эту ошибку :
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.


Что я уже пробовал:

update Category
set MovieNumbers = (select count(MT.MovieID)
from MovType MT inner join Category C
on  MT.[type] = C.[Type]
group by C.[Type])

1 Ответов

Рейтинг:
2

RossMW

Попробуйте запустить

select count(MT.MovieID)
from MovType MT inner join Category C
on  MT.[type] = C.[Type]
group by C.[Type])
часть вашего заявления скупо. Вы, вероятно, обнаружите, что он возвращает несколько записей, и, следовательно, оператор set MovieNumber = потерпит неудачу с вашей ошибкой, так как он не может обновить его до нескольких значений.

Кроме того, вам понадобится предложение where в конце, чтобы обновлялась только соответствующая запись.

Попробуй
update Category 
set MovieNumbers = numb 

from 

(select count(MovieID) as Numb, Type from MovType group by Type) x
where x.type = category.type


Hussien Ezzat

Да, я знаю, что он будет извлекать несколько значений, но я спрашиваю, есть ли способ обновить весь столбец MovieNumbers с помощью этого множества возвращаемых значений сразу ??

RossMW

Если вы внимательно посмотрите на свое заявление, то увидите, что
установить обновить категорию MovieNumbers = х

Ваш оператор не содержит никакого предложения where, поэтому он пытается обновить каждую запись несколькими значениями, возвращаемыми вашим оператором.
выберите граф(МФ.MovieID)
из MovType MT inner join Категория C
на MT. [type] = C.[Type]
группа по C.[тип]
утверждение и, следовательно, ошибка

Попробуй
категория обновления
набор MovieNumbers = онемели

от

(выберите граф(MovieID) как онемели, типа от группы MovType по видам) х
где X.тип = категория.тип


Я обновлю решение...